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它给出了相同的结果 –