簡體   English   中英

在PHP中使用&來獲取對象的引用是多余的嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM