Accéder directement à un tableau retourné par une fonction
Par Méthylbro le jeudi 9 juillet 2009, 08:00 - Développement - Lien permanent
Je me suis surpris récemment à vouloir accéder directement à un élément d'un tableau retourné par une fonction. Le tout en une seule instruction. C'est quelque chose qui ressemblais à ça :
echo bar()[1];
Mais bizarrement, ni l'analyse syntaxique de mon IDE, ni une petite interprétation par PHP n'ont apprécié cette instruction.
C'est bien dommage car au lieu de simplifier mon instruction à sa plus simple expression, j'ai du faire le choix entre rajouter une ligne, ou implémenter une fonction annexe. Certes cela ne change pas grand-chose en termes de consommation de ressources. Mais c'est désagréable.
$tmp = bar();
echo $tmp[1];
function foo($key, $array) {
return $array[$key];
}
echo foo(1, bar());
C'est malheureux de ne pas pouvoir profiter d'un tel raccourci. Surtout que ce comportement (ou cette absence de comportement disons) est bien connu de l'équipe de PHP : http://bugs.php.net/bug.php?id=41759
Voici une rapide traduction de la réponse apportée :
Cela a été discuté les plusieurs fois et actuellement personne n'est capable de fournir un patch acceptable. Consultez les archives de la liste de diffusion internals pour plus de renseignements.
Commentaires
Tu m'as fait une fausse joie !!! J'ai vu le titre je me suis dit 'cool il a enfin trouvé'... et en fait non... Je te hais