是什么意思,开始与符号一个PHP函数?是什么意思,开始与符号一个PHP函数?(What does i

2019-05-08 15:25发布

我使用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));
    }
...
}

什么是与在函数定义的开始意味着,以及如何去使用这样的库(在一个简单的例子)

Answer 1:

函数名前的符号表示该功能将参考返回给一个变量而不是值。

通过引用返回,当你想用函数找到引用应该绑定哪个变量是非常有用的。 不要使用返回的引用,以提高性能。 该发动机将自身自动优化这一点。 只有当你有一个有效的技术理由这样做返回引用。

见引用返回 。



Answer 2:

它返回一个参考,前面已经提到。 在PHP 4中,对象被分配值,就像任何其他的价值。 这是非常直观的,违反了大多数其他语言是如何工作的。

为了解决这个问题,使用该指向对象的变量引用。 在PHP 5中,引用很少被用到。 我猜这是遗留代码或代码试图保持向后兼容PHP 4的兼容性。



Answer 3:

这通常在PHP称为返回参考通过引用返回

通过引用返回,当你想用函数找到引用应该绑定哪个变量是非常有用的。 不要使用返回的引用,以提高性能。 该发动机将自身自动优化这一点。 只有当你有一个有效的技术理由这样做返回引用。

返回参考 PHP文档

在PHP的参考仅仅是分配给一个变量的内容的另一个名称。 PHP引用不喜欢C语言编程指针 ,它们不是实际的内存地址,因此它们不能用于指针算术。

返回引用的概念可以非常混乱特别是初学者,这样的例子会有所帮助。

$populationCount = 120;

function &getPopulationCount() {
  global $populationCount;
  return $populationCount;
}

$countryPopulation =& getPopulationCount();
$countryPopulation++;
echo "\$populationCount = $populationCount\n"; // Output: $populationCount = 121 
echo "\$countryPopulation = $countryPopulation\n"; //Output: $countryPopulation = 121 

功能getPopulationCount()与前面的定义& ,返回参考的内容或值$populationCount 。 因此,增加$countryPopulation ,还增加$populationCount



文章来源: What does it mean to start a PHP function with an ampersand?
标签: php oop