使用&符号启动PHP函数意味着什么?

使用&符号启动PHP函数意味着什么?

我正在使用带有此代码的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));
    }...}

函数定义的开头是什么意思,以及我如何使用这样的库(在一个简单的例子中)


www说
浏览 313回答 3
3回答

12345678_0001

函数名前的&符号表示函数将返回对变量的引用而不是值。当您想要使用函数来查找引用应该绑定到哪个变量时,通过引用返回很有用。不要使用按引用返回来提高性能。引擎将自动对其进行自动优化。只有在有正当技术理由的情况下才返回引用。请参阅返回参考。

侃侃无极

如前所述,它正在返回一个引用。在PHP 4中,对象按值分配,就像任何其他值一样。这非常不直观,与大多数其他语言的工作方式相反。为了解决这个问题,引用被用于指向对象的变量。在PHP 5中,很少使用引用。我猜这是遗留代码或代码试图保持与PHP 4的向后兼容性。

德玛西亚99

这通常在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 = 121getPopulationCount()使用前面定义的函数&返回对内容或值的引用$populationCount。所以,递增$countryPopulation,也递增$populationCount。
打开App,查看更多内容
随时随地看视频慕课网APP