有没有办法检查表示数组或对象的两个变量的身份(即完全相同的对象,在内存中只占一个位置)?(即,当修改由一个变量命名的对象时,可以在另一个变量的值中看到更改,因为它们指向同一个对象/数组)
例如,===
运算符检查两个数组是否“相同”,因为它们的元素和它们的顺序相等(相反==
,它不检查数组的顺序,所以 for $a = [11, 22]; $b = [1 => 22; 0 => 11];
, $a == $b
is true
but $a === $b
is false
(因为在后一种情况下排序不同,数组是有序映射)。
我想象的are_identical
函数会像这样工作(有点像is
Python 中的):
$a = [11, 22];
$b = [11, 22];
are_identical($a, $b); # => false
$x = [11, 22];
$y = &$x;
are_identical($x, $y); # => true