回答
它不被棄用,不太可能。例如,這是一種標準方式,可以將一個數組的一部分或對象鏡像更改爲另一個,而不是複製現有數據。
它被稱爲轉讓指定,其中,引用手冊,"means that both variables end up pointing at the same data, and nothing is copied anywhere"。
該被在PHP 5棄用與=&
被「按引用分配的new
結果」的唯一的事,這可能是任何混淆的來源。 new
通過引用自動分配,因此&
在$o = &new C;
中是冗餘/不推薦使用,但不在$o = &$c;
中。
由於很難尋找,注意=&
(等於符號)是一樣的= &
(等於空間符號),並經常寫過這樣,它運行到像$x = &$y['z'];
或$x = &$someVar
其他變量(&符號美元符號變量名稱)。例如,從文檔簡化:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
這裏有一個方便的鏈接到detailed section on Assign By Reference in the PHP manual。該頁面是參考文獻系列的一部分 - 值得花一點時間閱讀整個系列。
這是兩個不同的操作符。 =
是你可能知道的任務。而&
表示變量應該通過引用而不是按值來訪問。
我很抱歉,但這太簡單了。 $ a =&$ b表示使變量$ a引用與$ b現在所做的相同的事情。在此之後,$ a = 5;也將導致$ b的值爲5.然而,參考鏈接可能被$ b = & $xyz;或未設置($ b)打破;在這個時候,$ a將是唯一知道單元格是哪個變量的變量。還要注意,如果您使用=&設置$ a,則必須使用=&next time(或unset($ a))來更改$ a的引用鏈接,特別是$ a = NULL;不會中斷鏈接,它只會將null替換爲5; – Don 2010-04-07 01:51:21
@唐:感謝您的闡述。我可以告訴你是C程序員。 – Asaph 2010-04-07 03:26:58
我第二個是Don說的。但我不會說這太簡單了。我會說這是錯誤的。 – Artefacto 2010-08-21 17:11:20
$x = &$y['z'];
也有創造$y['z']
如果它不存在,並將其設置爲null
的效果。
這可以防止您可能想要讀取的錯誤消息。我還沒有找到這方面的文件;對於我所知道的,在5.3中可能是新的。
- 1. PHP賦值運算符=&
- 2. C#引用賦值運算符?
- 3. 使用賦值運算符
- 4. java複合賦值運算符和賦值運算符
- 5. 移動賦值運算符VS拷貝賦值運算符
- 6. 運算符超載賦值運算符
- 7. BigDecimal的賦值運算符
- 8. 賦值運算符 - 自賦值
- 9. 賦值運算符的參數類型(引用或值?)
- 10. 重載賦值運算符
- 11. C++「| =」賦值運算符
- 12. 賦值運算符在
- 13. 嫩枝賦值運算符
- 14. 重載賦值運算符
- 15. 布爾賦值運算符
- 16. 默認賦值運算符
- 17. 賦值=運算符超載
- 18. 布爾賦值運算符
- 19. 賦值運算符繼承
- 20. c賦值運算符=
- 21. 使用賦值運算符的的unique_ptr
- 22. Java中的賦值運算符無效
- 23. TypeScript中的賦值運算符重載
- 24. 賦值運算符Python中的變量?
- 25. C++中的賦值運算符
- 26. if語句中的賦值運算符
- 27. 聲明對象和賦值運算符的引用
- 28. 模板賦值運算符不替換默認賦值運算符
- 29. 使用模板賦值運算符
- 30. OOP,賦值運算符不起作用
參見http://stackoverflow.com/questions/3200009(標記爲此副本) – Artefacto 2010-07-08 10:19:36