预测输出:

var_dump(in_array("01", ["1"]) == var_dump("01" == 1));

实际输出结果应该是:

bool(true)
bool(false)

第一部分: in(array("01", ["1"])"01" == 1, 考察自动类型转换, 前者比较 "01" == "1" 返回 true, 后者比较 "01" == 1 也返回 true, PHP 程序员应该对 PHP 的类型转换规则规则有细致的了解.

第二部分: var_dump() 函数返回值, 很多人会认为 true == var_dump(true) 为真, 而实际上 var_dump() 函数并没有返回值, 它只进行输出, 返回值始终为 null, 因此比较结果应该为 false.

第三部分: var_dump() 中的 var_dump() 比外层函数先执行.

REFERENCE

PHP: PHP 类型比较表

比较运算符