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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 06:45:02658parcourir

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>

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!

Déclaration:
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