因此,php网站上的此页面显示了比较不同值的结果:
http://php.net/manual/en/types.comparisons.php
这是一个有益的引用,但我宁愿没有我想确保我做的类型比较合适的每次访问此页。所以我的问题是
是否有某种潜在的理念/推理类型比较对PHP背后的逻辑呢?
例如,我可以看到,对于比较宽松:
但它成为在试图建立一个模式从此有点毛。
最佳答案
对于直接转换为 bool 值,这就是它的工作原理。
然后,这些规则用于比较相同类型的变量:
对于不同类型的变量,将上面列表中较高的类型转换为较低的类型,然后进行比较。
===
和!==
运算符在比较之前不会强制转换,但是您应该注意,如果对象是同一实例,则它们仅是===
。真正奇怪的是数组,如果它们具有以相同顺序定义的相同键和值,则它们是
===
。$a = array("a"=>1, "b"=>2);
$b = array("b"=>2, "a"=>1);
$a == $b; // true
$a === $b; // false
并且
empty()
等同于!(bool)$var
EXCEPTIONS
Array
__toString
方法的对象强制转换为字符串会导致致命错误。 ArrayAccess
接口(interface), UPDATE 确认这是正确的)