Understanding Function Reference Parameter in PHP
In PHP, you can prefix a function name with an ampersand (&). This signifies that the function will return a reference to a variable rather than the value itself. While it may seem counterintuitive, there are scenarios where returning by reference is advantageous.
Let's examine an example from the Facebook REST Client library:
public function &users_hasAppPermission($ext_perm, $uid=null) { return $this->call_method('facebook.users.hasAppPermission', array('ext_perm' => $ext_perm, 'uid' => $uid)); }
Here, the function users_hasAppPermission returns a reference to a variable. However, to understand how to use this library effectively, let's construct a simple example:
$facebook = new FacebookRestClient(); $result = &$facebook->users_hasAppPermission('email'); if ($result) { // The 'email' extended permission is granted } else { // The 'email' extended permission is not granted }
In this snippet, we create a reference to the variable returned by the users_hasAppPermission function. The $result variable now contains a reference to the same variable that stores the permission status. This allows us to manipulate the permission status directly through the $result variable.
The above is the detailed content of When and Why Does PHP Use Function Reference Parameters?. For more information, please follow other related articles on the PHP Chinese website!