Tol*_*ayi 5 php comparison types boolean-operations
所以php网站上有这个页面显示比较不同值的结果:
http://php.net/manual/en/types.comparisons.php
这是一个有用的参考,但每次我想确保我正在进行类型比较时,我宁愿不必访问此页面.所以我的问题是
在PHP的类型比较逻辑背后是否存在某种潜在的哲学/推理?
例如,我可以看到松散的比较:
但是在尝试建立模式时,它变得有点毛茸茸.
对于直接转换为布尔值,这是它的工作原理.
然后这些规则用于比较相同类型的变量:
对于不同类型的变量,上面列表中较高的类型将转换为低于进行比较的类型.
===并且!==运算符在比较之前不会进行转换,但是只有===当对象是同一个实例时才应该注意它们.
真正奇怪的是数组,它们是===相同的键和值以相同的顺序定义.
$a = array("a"=>1, "b"=>2);
$b = array("b"=>2, "a"=>1);
$a == $b; // true
$a === $b; // false
Run Code Online (Sandbox Code Playgroud)
并empty()相当于!(bool)$var
例外
Array__toString方法的对象 转换为字符串会导致致命错误.ArrayAccess接口也是如此)