J'utilise la bibliothèque Facebook avec ce code:
class FacebookRestClient {
...
public function &users_hasAppPermission($ext_perm, $uid=null) {
return $this->call_method('facebook.users.hasAppPermission',
array('ext_perm' => $ext_perm, 'uid' => $uid));
}
...
}
Que signifie le & au début de la définition de la fonction, et comment utiliser une bibliothèque comme celle-ci (dans un exemple simple)
Il renvoie une référence, comme déjà mentionné. En PHP 4, les objets étaient attribués par valeur, comme toute autre valeur. Ceci est très peu intuitif et contraire au fonctionnement de la plupart des autres langages.
Pour contourner le problème, des références ont été utilisées pour les variables qui pointaient vers des objets. En PHP 5, les références sont très rarement utilisées. Je suppose que c'est du code hérité ou du code essayant de préserver la compatibilité ascendante avec PHP 4.
la source
Ceci est souvent connu en PHP comme Renvoi de référence ou Renvoi par référence .
Documentation PHP sur le renvoi de référence
Une référence en PHP est simplement un autre nom attribué au contenu d'une variable. Les références PHP ne sont pas comme des pointeurs dans la programmation C , ce ne sont pas des adresses mémoire réelles, elles ne peuvent donc pas être utilisées pour l'arithmétique des pointeurs.
Le concept de renvoyer des références peut être très déroutant, en particulier pour les débutants, un exemple sera donc utile.
La fonction
getPopulationCount()
définie avec un précédent&
, retourne la référence au contenu ou à la valeur de$populationCount
. Donc, incrémenter$countryPopulation
, incrémente également$populationCount
.la source