使用&符号启动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));
}...}函数定义的开头是什么意思,以及我如何使用这样的库(在一个简单的例子中)
3 回答
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
12345678_0001
TA贡献1802条经验 获得超5个赞
函数名前的&符号表示函数将返回对变量的引用而不是值。
当您想要使用函数来查找引用应该绑定到哪个变量时,通过引用返回很有用。不要使用按引用返回来提高性能。引擎将自动对其进行自动优化。只有在有正当技术理由的情况下才返回引用。
请参阅返回参考。
![?](http://img1.sycdn.imooc.com/5458464a00013eb602200220-100-100.jpg)
侃侃无极
TA贡献2051条经验 获得超10个赞
如前所述,它正在返回一个引用。在PHP 4中,对象按值分配,就像任何其他值一样。这非常不直观,与大多数其他语言的工作方式相反。
为了解决这个问题,引用被用于指向对象的变量。在PHP 5中,很少使用引用。我猜这是遗留代码或代码试图保持与PHP 4的向后兼容性。
![?](http://img1.sycdn.imooc.com/5458453d0001cd0102200220-100-100.jpg)
德玛西亚99
TA贡献1770条经验 获得超3个赞
这通常在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
。
- 3 回答
- 0 关注
- 312 浏览
添加回答
举报
0/150
提交
取消