$c1 = $v1 = array();
$v1['key'] = 'value';
echo '$c1 === $v1: ' . (($c1 === $v1) ? 'true' : 'false'); // prints false
$c1 === $v1
是错误的。但是为什么呢?看起来 $v1
自动设置为一个不同的数组,它的原始数组自动设置为了另一个数组。为什么会发生这种情况?
最初,$c
和 $v1
被设置为相同的数组实例。所以如果我改变 $v1,那么不应该 $c
反映出这些改变,因为它们都被设置为相同的数组实例。
[] === ['key' => 'value']
- LF00$v1
赋了一个值,而另一个为空。所以这两个数组不匹配。 - Qirel$c1
赋值后,与$v1
不相等。请查看 http://php.net/manual/zh/language.references.php 和 https://eval.in/815043。 - chris85