PHP での連想配列の補間: 予期しない動作
PHP で連想配列要素を補間すると、特定の動作が驚くべきものになる場合があります。次の例を考えてみましょう:
<code class="php">$ha = array('key1' => 'Hello to me'); print $ha['key1']; // correct (usual way) print $ha[key1]; // Warning, works (use of undefined constant) print "He said {$ha['key1']}"; // correct (usual way) print "He said {$ha[key1]}"; // Warning, works (use of undefined constant) print "He said $ha['key1']"; // Error, unexpected T_ENCAPSED_AND_WHITESPACE print "He said $ha[ key1 ]"; // Error, unexpected T_ENCAPSED_AND_WHITESPACE print "He said $ha[key1]"; // !! correct (How Comes?)</code>
奇妙なことに、最後の行は有効な PHP コードであるように見えます。なぜそうなるのでしょうか?
説明
一見珍しい構文を信頼してください。公式ドキュメントによると、変数補間のすべての方法がサポートされています。これには、中括弧で囲まずに二重引用符で囲まれた文字列内の配列要素にアクセスすることが含まれます。
この特定の動作の理由は完全には明らかではないかもしれませんが、これは PHP の歴史的な進化に起因しており、矛盾が必然的に忍び込んでいます。それにもかかわらず、この機能は信頼性が高く、有効な PHP 構文として広く受け入れられています。
以上がなぜ PHP では二重引用符で囲まれた文字列内の連想配列要素の直接補間が可能なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。