ホームページ  >  記事  >  バックエンド開発  >  なぜ PHP では二重引用符で囲まれた文字列内の連想配列要素の直接補間が可能なのでしょうか?

なぜ PHP では二重引用符で囲まれた文字列内の連想配列要素の直接補間が可能なのでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 06:45:02658ブラウズ

Why Does PHP Allow Direct Interpolation of Associative Array Elements in Double-Quoted Strings?

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 サイトの他の関連記事を参照してください。

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