簡體   English   中英

PHP:通過引用實例化類?

[英]PHP: Instantiate class by reference?

我正在為PHP 5.3轉換一些舊的PHP 4.x代碼。 我遇到過以下情況,我不確定它的作用。

$variable =& new ClassName();

它有什么區別,和:

$variable = new ClassName();

在PHP4的Ye Olde Days中,=&在構造對象時是必需的。 在PHP 5中,它不是。

=&做參考作業。

例如:

$a = 'a';
$b =& $a;
$b = 'b';
echo $a; // Prints 'b', since a and b have been linked by &=.

換句話說,它有其用途,而不是在實例化對象時。 對於這種用途,它已經被貶低了。

在PHP4中,默認情況下,對象是按值傳遞的,而不是通過引用傳遞的。 這意味着該對象的副本是在分配時進行的。 如果要通過引用而不是按值傳遞對象,可以使用&運算符。 在PHP5中,默認情況下通過引用傳遞對象。 所以在處理對象時不再需要& 默認情況下,基元(或在PHP世界中經常調用的標量)仍然按值傳遞。

我發現,遷移OO PHP4的代碼到PHP5的時候,相當多的&小號移除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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