[英]Using & to get object's reference in PHP is redundant?
在PHP中,所有對象變量實際上都是指向對象的指針(否?),語言隱式地處理了該對象(對嗎?),但是我看到許多php代碼在諸如此類的參數中指定了引用:
function someMethod(SomeClass& $obj)
{
//...
}
我也看到過這樣的事情:
function add()
{
$object = new SomeClass;
self::$objects[] =& $object;
}
如果我錯了,請糾正我,但這里沒有任何區別:
self::$objects[] =& new SomeClass
self::$objects[] = new SomeClass
我對嗎??????
我測試過的另一件事:
class SomeClass{}
$obj =& new SomeClass; // is in fact deprecated, doesn't work
$obj = new SomeClass;
$obj2 =& $obj; // works, but should also be deprecated!! No?
在php5中,是的,它是多余且毫無意義的。
據我所知,與引用有關的唯一東西是調用時傳遞引用(例如somefunction(&$var);
您的代碼示例可能帶有&
符號,表示與PHP 4兼容。 無論您是否使用&
來在PHP 5中使用對象引用,都沒有什么區別。當然,這之間存在細微的差別(在PHP 5中,按值傳遞引用與使用&
來傳遞引用來傳遞對象之間),但在大多數情況下,在PHP 5中運行時,它不會影響您的代碼。
該頁面可能對您有所幫助: http : //www.php.net/manual/zh/language.operators.assignment.php
new
自動返回一個引用,因此您不再將= &
再用於新聲明的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.