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!