ホームページ  >  記事  >  バックエンド開発  >  PHP で式を使用して配列値にアクセスできないのはなぜですか?

PHP で式を使用して配列値にアクセスできないのはなぜですか?

DDD
DDDオリジナル
2024-11-24 00:30:10434ブラウズ

Why Can't I Access Array Values Using Expressions in PHP?

PHP での動的配列アクセス [原文: Access Array Value on the Fly]

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]; // Invalid: Subscripted expression is a parenthetical expression.

function ret($foo) { return $foo; }
echo ret($x)[1]; // Invalid: Subscripted expression is a call expression.

以上がPHP で式を使用して配列値にアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。