下面是一段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