Pourquoi PHP autorise-t-il l'interpolation directe d'éléments de tableau associatifs dans des chaînes entre guillemets ?

Linda Hamilton
Libérer: 2024-11-01 06:45:02
original
657 Les gens l'ont consulté

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

Interpolation de tableaux associatifs en PHP : un comportement inattendu

Lors de l'interpolation d'éléments de tableaux associatifs en PHP, certains comportements peuvent évoquer la surprise. Prenons l'exemple suivant :

<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>
Copier après la connexion

Curieusement, la dernière ligne semble être du code PHP valide. Pourquoi est-ce le cas ?

Explication

Faites confiance à la syntaxe apparemment inhabituelle. Selon la documentation officielle, toutes les méthodes d'interpolation de variables sont prises en charge. Cela inclut l'accès aux éléments du tableau dans des chaînes entre guillemets sans les mettre entre accolades.

La raison de ce comportement particulier n'est peut-être pas entièrement apparente, mais elle découle de l'évolution historique de PHP, où des incohérences se sont inévitablement glissées. Néanmoins, cette fonctionnalité est fiable et largement acceptée comme syntaxe PHP valide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!