Estoy usando la biblioteca de Facebook con 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));
}
...
}
¿Qué significa & al comienzo de la definición de la función y cómo hago para usar una biblioteca como esta (en un ejemplo simple)
Está devolviendo una referencia, como ya se mencionó. En PHP 4, los objetos se asignaron por valor, como cualquier otro valor. Esto es muy poco intuitivo y contrario a cómo funciona la mayoría de los otros idiomas.
Para evitar el problema, se utilizaron referencias para variables que apuntaban a objetos. En PHP 5, las referencias se usan muy raramente. Supongo que este es un código heredado o un código que intenta preservar la compatibilidad con PHP 4.
fuente
Esto se conoce a menudo en PHP como Referencia de retorno o Devolución por referencia .
Documentación de PHP sobre referencias de retorno
Una referencia en PHP es simplemente otro nombre asignado al contenido de una variable. Las referencias PHP no son como punteros en la programación en C , no son direcciones de memoria reales, por lo que no pueden usarse para la aritmética de punteros.
El concepto de devolución de referencias puede ser muy confuso, especialmente para los principiantes, por lo que un ejemplo será útil.
La función
getPopulationCount()
definida con un precedente&
, devuelve la referencia al contenido o valor de$populationCount
. Entonces, incrementando$countryPopulation
, también incrementa$populationCount
.fuente