Estou usando a biblioteca do Facebook com este código:
class FacebookRestClient {
...
public function &users_hasAppPermission($ext_perm, $uid=null) {
return $this->call_method('facebook.users.hasAppPermission',
array('ext_perm' => $ext_perm, 'uid' => $uid));
}
...
}
O que significa o & no início da definição da função e como faço para usar uma biblioteca como esta (em um exemplo simples)
Está retornando uma referência, como já mencionado. No PHP 4, os objetos foram atribuídos por valor, assim como qualquer outro valor. Isso é altamente intuitivo e contrário ao funcionamento da maioria dos outros idiomas.
Para contornar o problema, foram usadas referências para variáveis que apontavam para objetos. No PHP 5, as referências são muito raramente usadas. Eu estou supondo que este é um código legado ou código tentando preservar a compatibilidade com o PHP 4.
fonte
Isso geralmente é conhecido no PHP como Retornando referência ou Retornando por referência .
Documentação PHP em Retornando referência
Uma referência em PHP é simplesmente outro nome atribuído ao conteúdo de uma variável. As referências PHP não são como ponteiros na programação C , não são endereços de memória reais, portanto não podem ser usadas para aritmética de ponteiros.
O conceito de retornar referências pode ser muito confuso, especialmente para iniciantes, portanto, um exemplo será útil.
A função
getPopulationCount()
definida com um precedente&
retorna a referência ao conteúdo ou valor de$populationCount
. Então, incrementar$countryPopulation
também incrementa$populationCount
.fonte