PHP で配列要素に動的にアクセスする
PHP では、動的キーに基づいて配列値を取得する必要があるのが一般的です。ただし、ワンライナーを使用してこれを実現するのは難しい場合があります。
次のコードを考えてみましょう:
echo array('a','b','c')[$key];
PHP では配列の添字付けが許可されていないため、このコードはエラーになります。直接的な表現。これを解決するには、中間変数を導入できます。
$variable = array('a','b','c'); echo $variable[$key];
このメソッドは機能しますが、冗長で不要な変数が作成されます。
この制限の理由は PHP の文法にあります。添字を変数式に制限します。一般に表現は許可されません。この動作は、他の多くのプログラミング言語とは異なります。
無効な添え字の例としては、次のようなものがあります。
$x = array(1,2,3); print ($x)[1]; // Illegal: subscripting a parenthetical expression function ret($foo) { return $foo; } echo ret($x)[1]; // Illegal: subscripting a call expression
この制限にもかかわらず、PHP では動的配列アクセスに関して多くの回避策が利用できます。 :
// Using curly braces echo array_merge(array('a'), array('b', 'c'))[$key] ?? null; // Using ternary operator echo ($key >= 0 && $key <= 2) ? array('a','b','c')[$key] : null;
最終的に、PHP で配列要素に動的にアクセスするための最良のアプローチは、特定のユースケースとパフォーマンス要件によって異なります。
以上がPHP で配列要素に動的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。