Que signifie [] en lisant à partir d'un tableau PHP?
j'ai écrit un analyseur pour PHP et tout en jouant avec un code tiers, je tombe sur un cas bizarre concernant l'opérateur []
.
normalement, []
est utilisé sans clé sur le côté gauche d'une affectation signifiant"ajouter comme dernier élément".
$a = array();
$a[] = 1;
ajoutera 1 à la fin du tableau $A.
dans le code ci-dessus, j'ai vu une ligne comme celle-ci:
$r =& $a[];
quand j'ai essayé d'enlever le&, j'ai eu une erreur fatale plutôt attendue:
erreur Fatale: Impossible d'utiliser [] pour la lecture
avec le &
cependant, PHP ne se plaint pas du tout. Quelle est la signification de l'expression
& $a[];
?
2 réponses
la syntaxe signifie" utiliser une référence à $A [] " ou une référence à l'élément de tableau le plus récent créé.
<?php
$a=array( );
$a[] = "a";
$a[] = "b";
print_r($a);
$r =& $a[];
print_r($a);
$r = "c";
print_r($a);
produit:
Array
(
[0] => a
[1] => b
)
Array
(
[0] => a
[1] => b
[2] =>
)
Array
(
[0] => a
[1] => b
[2] => c
)
à mon avis, Il ajoute un élément vide au tableau et donne à $r une référence à cet élément du tableau. Êtes-vous sûr que $a est censé être un tableau? Il pourrait aussi essayer d'accéder à un caractère d'une chaîne en utilisant la syntaxe [], auquel cas je n'ai aucune idée de comment cela pourrait fonctionner.