Я использую библиотеку Facebook с этим кодом:
class FacebookRestClient { ... public function &users_hasAppPermission($ext_perm, $uid=null) { return $this->call_method('facebook.users.hasAppPermission', array('ext_perm' => $ext_perm, 'uid' => $uid)); } ... }
Что означает & в начале определения функции и как я могу использовать такую библиотеку (в простом примере)
Амперсанд перед именем функции означает, что функция вернет ссылку на переменную вместо значения.
Возвращение по ссылке полезно, когда вы хотите использовать функцию, чтобы найти, к какой переменной привязка должна быть привязана. Не используйте обратную ссылку для увеличения производительности. Двигатель автоматически оптимизирует это самостоятельно. Возвращайте ссылки только тогда, когда у вас есть веская техническая причина.
См. Возврат ссылок .
Он возвращает ссылку, как уже упоминалось. В PHP 4 объекты были назначены по значению, как и любое другое значение. Это очень неинтуитивно и противоречит тому, как работает большинство других языков.
Чтобы обойти проблему, ссылки использовались для переменных, указывающих на объекты. В PHP 5 ссылки очень редко используются. Я предполагаю, что это устаревший код или код, пытающийся сохранить обратную совместимость с PHP 4.