我正在阅读关于php的内容,它说,
==
is Equality such that$a == $b
istrue
if$a
and$b
have the same elements.
===
is Identity such that$a === $b
istrue
if$a
and$b
have the same elements, with the same types, in the same order.
所以,我想我会尝试看看自己的差异并用这个小脚本写下来:
$a = array(1, 2, 3);
$b = array(2, 3, 1);
if ($a==$b) {echo "yeehaw!";} else {echo "nope";}
if ($a===$b) {echo "yup";} else {echo "nope";}
我的想法是,两个数组相等并不需要相同的顺序.然而,当我跑这个时,我得到了“不”和“不”.
有什么不同?
解决方法:
您提供的数组具有相同的值集,但具有不同的键值对.
请尝试使用以下用例(不同顺序的相同键值对):
$a = array(0=>1, 1=>2, 2=>3);
$b = array(1=>2, 2=>3, 0=>1);
…以及以下用例(不同的数据类型):
$a = array(1, 2, 3);
$b = array('1', '2', '3');