PHP OOP中的$a = &$b
,$a = $b
和$b = clone $a
之間的區別是什麼? $a
是一個類的實例。
3
A
回答
8
// $a is a reference of $b, if $a changes, so does $b.
$a = &$b;
// assign $b to $a, the most basic assign.
$a = $b;
// This is for object clone. Assign a copy of object `$b` to `$a`.
// Without clone, $a and $b has same object id, which means they are pointing to same object.
$a = clone $b;
並檢查與References,Object Cloning更多信息。
0
// $a has same object id as $b. if u set $b = NULL, $a would be still an object
$a = $b;
// $a is a link to $b. if u set $b = NULL, $a would also become NULL
$a = &$b;
// clone $b and store to $a. also __clone method of $b will be executed
$a = clone $b;
-1
如果你不知道什麼是ZVAL結構,什麼是引用計數,is_ref在ZVAL結構有關,只是需要一些時間PHP's garbage collection。
相關問題
- 1. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 2. ||之間的區別a = b和a = a || b在紅寶石?
- 3. a = a ||之間的區別b和a || = B
- 4. a = a + b和a + = b之間的區別是什麼?
- 5. a + b和.__之間的區別__(b)
- 6. [:] = b和a = b [:]之間的區別? (Python)
- 7. bash中的$ [a-b]和$((a-b))之間的區別
- 8. 區別 「A級; B類」 和 「類A :: B」
- 9. Kleene明星在編程。 (a | b)*和a * b *之間的區別?
- 10. Scala中f(a,b)和f(a)(b)之間的區別
- 11. a,b = b,a + b和a = b,b = a + b在fibonacci中的區別是什麼[Python]
- 12. * a = b和a =&b之間的差異?
- 13. * a = b和a =&b之間的區別是什麼?
- 14. a [:] = b和a = b之間的區別是什麼?
- 15. a // b和int(a/b)之間有什麼區別?
- 16. A == B對B == A,有什麼區別
- 17. 輸入(a + b)** 2,輸出a * a + a * b + b * a + b * b
- 18. Python中a - = b和a = a - b的區別
- 19. Java中a + = b和a = a + b的區別
- 20. 混合兩個矢量:[a a]和[b b] to [a b a b]
- 21. GROUP BY(A,B)和(B,A)
- 22. double a = a + int b和int a + = double b之間的區別是什麼?
- 23. 未定義的引用 - 應該在C++中的`a = -b;`和`a = -1 * b;`和`a = 0-b'之間有區別嗎?
- 24. [b] [b = a,0]如何在a和b之間交換?
- 25. Python a,b = b,a + b
- 26. (A && B)與(A和B)
- 27. val b = a(a是一個Array)和val b = a.clone()之間的區別是什麼?
- 28. [abc]和(a | b | c)之間的區別
- 29. 爲什麼有A = A +之間的差異B和A + = B
- 30. PHP變換陣列'a','b','c'到'a/b/c','a/b','a'
+1比我快:) –
我寫的也差不多了! +1,但我希望你能更多地解釋PHP的引用和克隆。更新:當然你更新了你的答案,同時我發佈了評論:D – Adi
我不明白$ a = $ b之間的主要區別是什麼;和$ a = &$b;如果你看看這裏的第一個例子http://php.net/manual/en/language.oop5.references.php它給出了相同的結果 –