blog

PHP5とPHP7の違いは、動的な関数名の配列要素をフェッチする

PHP5とPHP7で関数/メソッド名を変数から取得して実行する場合、バージョン間で有効でない解釈ポリシーのために同じコードが動作しないことがあります。上記の例は、PHP5.6 では正常に動作しますが、...

Mar 17, 2020 · 2 min. read
シェア

PHP5とPHP7で関数/メソッド名を変数から取得して実行する場合、 バージョン間で解釈ポリシーが異なるため、同じコードが動作しないことがあります。

代表例

$a = ['add', 'sub'];
class Test
{
 パブリック関数add()
 {
    エコー1+ 2;
  }
}
$t = new Test();
$t->$a[0]();

上記の例は、PHP5.6 では正常に動作しますが、PHP7 では Fatal error: Function name must be a string がスローされます。 これは、PHP5 でt->t->a0 を実行する際に、まず $a[0] を実行して要素の値を取得し、それからオブジェクト固有のメソッドを実行するからです。

PHP7 ではt->t->a が最初に実行され、エラーが発生して実行が中断されます。PHP7 で正しく実行させたい場合は、t->{a[0]}() に変更する必要があります。

![]

上記のコンテンツは、時間の進歩で多くのPHPerは常にいくつかの問題やボトルネックに遭遇するあなたを助けるために願って、ビジネスコードは、方向感覚よりも多くを記述するために、私は、材料の数を照合している改善するためにどこから始めればわからないが、これらに限定されない:分散アーキテクチャ、高いスケーラビリティ、高性能、高同時性、サーバーのパフォーマンスチューニング、TP6、laravel、YII2、Redis、Swoole、Kafka、Mysqlの最適化、シェルスクリプト、マイクロサービス、Nginxおよび他の多くの知識ポイント高度な乾物は無料で共有することができます。Swoole、Swoft、Kafka、Mysqlの最適化、シェルスクリプト、Docker、マイクロサービス、Nginxおよび他の多くの知識ポイント高度な高度な乾物は、みんなと共有するために自由にする必要があり、ここを突く必要があります!

Read next

実例丨ModelArtsのデータ注釈、データフィルタリング応用技術:自動グループ化

複雑な、混沌とした画像のシーケンシャルラベル付け効率が極端に低い多数、あなたは画像の広い領域にラベルを付けることができる時間が大幅にラベリング効率を向上させる場合。 自動グルーピングは、画像の特徴を識別して抽出し、ModelArtsの高度なクラスタリングアルゴリズムによってすべての画像をグループ化することができます:類似した特徴を持つ画像は1つのクラスにグループ化され、特徴の大きな違いを持つ画像クラスタは分離されます。 約3分後、フィルタリング条件を通して、自動的にグループ化された...

Mar 17, 2020 · 3 min read