9
votes

Accéder à un élément de tableau lorsque vous revenez d'une fonction

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];


1 commentaires

Il fait définitivement pas rendre votre code plus lisible;)


3 Réponses :


3
votes

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;


0 commentaires

10
votes
echo ${1|${1}=getArray()}[1];
echo ${''.$Array=getArray()}[1];

function p(&$a, $b) { $a = $b; return '_'; }
echo ${p($_, getArray())}[1];

0 commentaires

2
votes

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


0 commentaires