鍍金池/ 問答/PHP/ PHP 的 Object 指向內(nèi)存地址是相同的嗎

PHP 的 Object 指向內(nèi)存地址是相同的嗎

類似 js一樣 Object 不論如何賦值,他們引用的內(nèi)存地址都是相同的嗎

回答
編輯回答
孤星

是的

$a = new stdClass();
$b = $a;
$b->x = 1;
$c = clone $a;

xdebug_debug_zval("a");
xdebug_debug_zval("b");
xdebug_debug_zval("c");

a:
(refcount=2, is_ref=0)
object(stdClass)[1]
  public 'x' => (refcount=0, is_ref=0)int 1
b:
(refcount=2, is_ref=0)
object(stdClass)[1]
  public 'x' => (refcount=0, is_ref=0)int 1
c:
(refcount=1, is_ref=0)
object(stdClass)[2]
  public 'x' => (refcount=0, is_ref=0)int 1

a、b的引用計數(shù)為2,兩個變量指向相同的內(nèi)容,在對b進(jìn)行添加屬性時會同時改變a、b,且不會進(jìn)行強制分裂
c為clone $a的新對象,指向新的內(nèi)存地址

2017年9月29日 09:18