PHP文档中的类型comparison chart显示了严格===
和松散==
比较的结果。没有关于不平等比较的事情:
true < 0 => false
0 < true => true
true < 1 => false
1 < true => false
true < -1 => false
-1 < true => false
false < 0 => false
0 < false => false
false < 1 => true
1 < false => false
false < -1 => true
-1 < false => false
有人可以合理化上述结果吗?
答案 0 :(得分:1)
将布尔值转换为整数时,true将转换为1,false将转换为0
来自PHP手册:http://php.net/manual/en/language.types.integer.php
来自布尔值
FALSE将产生0(零),而TRUE将产生1(一)。
另外:
-1被视为TRUE,与任何其他非零(无论是负数还是正数)一样!
true < 0 => false => true < (bool)(0) => true < false => 1 < 0 = false
0 < true => true => (bool)(0) < true => false < true => 0 < 1 = true
true < 1 => false => true < (bool)(1) => true < true => 1 < 1 = false
1 < true => false => (bool)(1) < true => => true < true => 1 < 1 = false
true < -1 => false => true < (bool)(-1) => true < true => 1 < 1 = false
-1 < true => false => (bool)(-1) < true => true < true = > 1 < 1 = false
false < 0 => false => false < (bool)(0) => false < false => 0 < 0 = false
0 < false => false => (bool)(0) < false => false < false => 0 < 0 = false
false < 1 => true => false < (bool)(1) => false < true => 0 < 1 = true
1 < false => false => (bool)(1) < false => true < false => 1 < 0 = false
false < -1 => true => false < (bool)(-1) => false < true => 0 < 1 = true
-1 < false => false => (bool)(-1) < false => true < false => 1 < 0 = false
答案 1 :(得分:0)
true&lt; 0 =&gt; false ===&gt; 1&lt; 0 =&gt; false(0 == 0 ==&gt; true)
0&lt; true =&gt;是= =&gt; 0&lt; 1 =&gt;真正
真实&lt; 1 =&gt; false ===&gt; 1&lt; 1 =&gt; false(1 == 1 ==&gt; true)
1&lt; true =&gt; false ===&gt; 1&lt; 1 =&gt; false(1 == 1 ==&gt; true)
真实&lt; -1 =&gt; false ===&gt; 1&lt; -1 =&gt;假
-1&lt; true =&gt; false ===&gt; -1&lt; 1 =&gt; false ======&gt; 1&lt; 1 =&gt; false(布尔类型被视为无符号)
===&GT;
假&lt; 0 =&gt; false ===&gt; 0&lt; 0 =&gt;假
0&lt; false =&gt; false ===&gt; 0&lt; 0 =&gt;假
假&lt; 1 =&gt;是= =&gt; 0&lt; 1 =&gt;真正
1&lt; false =&gt; false ===&gt; 1&lt; 0 =&gt;假
假&lt; -1 =&gt;是= =&gt; 0&lt; -1 =&gt;是======&gt; 0&lt; 1 =&gt; true(布尔类型被视为无符号)
-1&lt; false =&gt; false ===&gt; -1&lt; 0 =&gt; false ======&gt; 1&lt; 0 =&GT; false(布尔类型被视为无符号)