PHP accolade syntaxe pour la variable de membre
Première question DONC, et c'est un vrai RTM candidat. Mais je vous promets, j'ai regardé, et n'arrive pas à trouver il. Je vais heureux de faire un #headpalm lorsqu'il s'avère être une chose très simple que j'ai manqué.
À essayer de comprendre le Zend Framework et est venu à travers la syntaxe suivante:
$this->_session->{'user_id'}
Je n'ai jamais vu les accolades de la syntaxe utilisée pour accéder à ce qui semble être une variable membre. Comment est-il différent de
$this->_session->user_id
Je suis en supposant que le _session n'est pas pertinent, mais y compris dans la question, car il peut ne pas l'être.
Sont les accolades juste une propreté convention qui tente d'enrouler le composé du nom de la variable user_id? Ou est-ce une sorte de spécial accesseur?
Tous les pointeurs en TFM afin que je puisse R il serait humblement apprécié.
Merci beaucoup. Soyez doux.
- Merci à tous, pour le rapide et d'excellentes réponses. Avec la douceur de l'initiation, DONC, je suis encouragé à l'utiliser davantage. Heureusement, je peux vous aider à répondre à des questions, il suffit de demander 'em. Des acclamations.
- Information intéressante: Vous pouvez appeler les méthodes avec le frisé de la syntaxe, et le résultat est aussi rapide que l'appel de la méthode directement. À l'aide de call_user_func est plus général, mais il faut deux fois aussi long call_user_func(array($obj,$method),"parm1","parm2") au lieu de $obj->{$method}("parm1,"parm2");
- Et le dernier est plus lisible, trop. Au moins de l'OMI. En fait, j'ai souvent omettre les accolades sur le nom de la méthode dans ce cas:
$obj->$method($params)
Vous devez vous connecter pour publier un commentaire.
Accolades sont utilisées pour spécifier explicitement la fin d'un nom de variable. Par exemple:
Donc, votre cas est vraiment une combinaison de deux cas particuliers. Vous êtes autorisé à accéder aux variables de classe à l'aide d'accolades et de la sorte:
Et dans votre cas, vous êtes juste en les entourant de l'accolade de la syntaxe.
Voir le Manuel PHP, "complexe (bouclés) de la syntaxe."
Je sais que la syntaxe juste lors de l'utilisation de les variables:
Theres probablement un gros avantage de cette syntaxe, cependant, il est en général dans le domaine des poilus de choses, et des choses que vous voudrez probablement à éviter.
Il vous permet d'utiliser des caractères dans les noms de variables qui sont par ailleurs non autorisé.
ie:
Les deux exemples dans votre question de faire la même chose. PHP vous permet d'accéder à des données sur les membres, les méthodes de plusieurs façons...
Dans l'exemple que vous donnez, il n'y a pas de différence réelle, et de l'OMI
$this->_session->user_id
doit être utilisé car il est plus clair.Ce que l'accolade syntaxe est réellement bon pour est de l'accès à une variable de membre de par la construction d'une expression, pour son nom, comme
$this->_session->{'user_id' . $index}
.