PHP - 数组比较==和===

时间:2016-11-04 07:40:07

标签: php arrays

有人可以澄清为什么是

的结果
$a = array (0 => 1, 1 => 2, 2 => 3);
$b = array (1 => 2, 2 => 3, 0 => 1); 
var_dump ($a === $b);

Boolean false而不是Boolean true?

6 个答案:

答案 0 :(得分:3)

正如您在PHP manual

中所看到的
  

$a === $b:如果$ a和$ b在相同的顺序和相同类型中具有相同的键/值对,则为TRUE。

您的数组键/值对未按相同顺序设置,因此结果将为false

答案 1 :(得分:0)

Double等于仅比较值,而Triple等于比较数据类型

答案 2 :(得分:0)

$a = array (0 => 1, 1 => 2, 2 => 3);
$b = array (1 => 2, 2 => 3, 0 => 1); 
$c = array (0 => 1, 1 => 2, 2 => 3);
var_dump( $a === $b );  // False
var_dump( $a === $c );  // True

数组必须匹配,顺序相同。

答案 3 :(得分:0)

仅当 $ a和$ b在相同的订单中具有相同的键/值对时,

$ a === $ b将为TRUE 相同类型

答案 4 :(得分:0)

$a == $b Equal TRUE if $a is equal to $b, except for (True == -1) which is still True.

$a === $b Identical TRUE if $a is equal to $b, and they are of the same type.

e.g。

  
    

" 1" == 1;真正     " 1" === 1;假

  

答案 5 :(得分:0)

$a = array (0 => 1, 1 => 2, 2 => 3);
$b = array (1 => 2, 2 => 3, 0 => 1); 
var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)

==比较$a with $b的变量 ===比较$a with $b

中的相同数据类型