Certaines recherches via Google (et ma propre expérience) montre que, dans PHP, vous ne pouvez pas saisir un élément de tableau lorsque cela a été renvoyé à partir d'un appel de fonction sur la même ligne. Par exemple, vous ne pouvez pas faire:
echo ${!${false}=getArray()}[0];
3 Réponses :
Cela fonctionne parce que vous utilisez les accolades pour transformer la valeur en variable, heres un exemple.
function test() { $object = new stdClass(); $object->name = 'Robert'; return $object; } echo test()->name;
echo ${1|${1}=getArray()}[1]; echo ${''.$Array=getArray()}[1]; function p(&$a, $b) { $a = $b; return '_'; } echo ${p($_, getArray())}[1];
Il convient de noter que vous peut strong> faire ceci à partir de PHP 5.4. Du manuel sur l'érayage Dérovateur: AS de PHP 5.4 Il est possible de disposer de la déréférence du résultat d'une fonction ou d'une méthode directement. Avant qu'il ne soit possible que d'utiliser une variable temporaire. P>
blockQuote> Exemple: P>
function theArray() {
return range(1, 10);
}
echo theArray()[0];
// PHP 5.4+: 1
// PHP -5.4: null
Il fait définitivement pas b> rendre votre code plus lisible;)