一.对象和赋值:
-
实例化后,会建立一个,会指向这个class类的 标示id
-
通过赋值,等于一个实例,是同指向这个id,不过这个变量,可以随时改指向其他的标示地址id
示例:
class A{
public $testa = 3;
}
class B{
public $testa = 7;
}
$a = new A();
$b = $a; // $a ,$b都是同一个标识符的拷贝
// ($a) = ($b) = <id>
$b->testa = 2;
echo $b->testa; //2
echo $a->testa; //2
$a->testa = 5;
echo $b->testa; //5
echo $a->testa; //5
$c = new B();
$b =$c;
echo $a->testa; //5
echo $b->testa; //7
echo $c->testa; //7
//此时如果,把$a重新赋值呢
$a = $c;
echo $a->testa; //7
$a->testa = 8;
echo $a->testa; //8
echo $b->testa; //8
echo $c->testa; //8
一.对象和引用:
不同的名字,都指向同一硬件地址,不管以后怎么变化,都不变。
class A{
public $test = 4;
}
class B{
public $test = 8;
}
$b = new A();
echo $b->test; //4
$a = &$b; // $a ,$b是引用
// ($a,$b) = <id>
echo $a->test; //4
echo $b->test; //4
$a->test = 5;
echo $a->test; //5
echo $b->test; //5
$c = new B();
echo $c->test; //8
$a = $c; // $a ,$b是引用;$a,$c是赋值
// ($a,$b) = <id>
// ($a,$b) = ($c) = <id2>
echo $a->test; //8
echo $b->test; //8
echo $c->test; //8
获取更多的文章,欢迎关注微信公众号