Home > Article > Backend Development > 连续用 “等号”是什么意思?
下面是一段dedecms中的代码:
$dsql=$db=new DedeSql(FALSE)
同时赋值
$a = $b = 1;
等价于
$a = 1;
$b = 1;
不过需要注意的是
$dsql=$db=new DedeSql(FALSE)
并不等价于
$dsql = new DedeSql(FALSE);
$db = new DedeSql(FALSE);
前者是两个变量是同一个实例
后者是两个变量各有一个实例
还真没这样用过。
同时赋值
$a = $b = 1;
等价于
$a = 1;
$b = 1;
不过需要注意的是
$dsql=$db=new DedeSql(FALSE)
并不等价于
$dsql = new DedeSql(FALSE);
$db = new DedeSql(FALSE);
前者是两个变量是同一个实例
后者是两个变量各有一个实例
…… 连续赋值,等号右侧为实例化类,则等号左侧变量的值是同一个实例,对吧?
这种东西需要的不是记忆,而是实践
class T { public $v = 1;}$a = $b = new T;echo $a->v, ' ', $b->v; //1 1$b->v = 'a';echo $a->v, ' ', $b->v;//a a