<?php
class A
{
// 属性(成员)声明
public $aa = '缺省值';
public $bb=array("苹果","葡萄","香蕉");
// 方法声明
public function echo_aa() {
echo $this->aa;//not $this->$aa
}
}
$a1=new A;
$a1->aa="我是a1";
$a2 = $a1;
$a3 =& $a1;
//如果说把$a1和$a2看做是对同一块内存区的引用的话,那么$a3可以看作是对
//$a1的引用,也就是说$a1的值得变化引起$a3同样的改变
$a1->aa= '我是a1,我已经修改';
$a1 = null; // $a1 and $a3 become null
var_dump($a1);echo "<br/>";
var_dump($a2);echo "<br/>";
var_dump($a3);//$a1都为null了,你$a3也难逃一劫
?>
class A
{
// 属性(成员)声明
public $aa = '缺省值';
public $bb=array("苹果","葡萄","香蕉");
// 方法声明
public function echo_aa() {
echo $this->aa;//not $this->$aa
}
}
$a1=new A;
$a1->aa="我是a1";
$a2 = $a1;
$a3 =& $a1;
//如果说把$a1和$a2看做是对同一块内存区的引用的话,那么$a3可以看作是对
//$a1的引用,也就是说$a1的值得变化引起$a3同样的改变
$a1->aa= '我是a1,我已经修改';
$a1 = null; // $a1 and $a3 become null
var_dump($a1);echo "<br/>";
var_dump($a2);echo "<br/>";
var_dump($a3);//$a1都为null了,你$a3也难逃一劫
?>
如果大家还不太明白,看看简单类型的吧:
<?php
$a=1;
$b=$a;//简单的值拷贝--之后2者互不干涉对方"生活",哈哈
$c=& $a;//这里关键
$a=2;
echo $a."<br/>";//2
echo $b."<br/>";//1
echo $c."<br/>";//2
?>
$a=1;
$b=$a;//简单的值拷贝--之后2者互不干涉对方"生活",哈哈
$c=& $a;//这里关键
$a=2;
echo $a."<br/>";//2
echo $b."<br/>";//1
echo $c."<br/>";//2
?>
本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/106109,如需转载请自行联系原作者