企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
比较运算符,如同它们名称所暗示的,允许对两个值进行比较。 * `$a == $b`,如果类型转换后a 等于a等于b,返回 TRUE。 * `$a === $b`,如果a 等于a等于b,并且它们的类型也相同,返回 TRUE。 * `$a != $b`,如果类型转换后a 不等于a不等于b,返回 TRUE。 * `$a <> $b`,等同于`!=` * `$a !== $b`,如果a 和a和b 的值或类型不同,返回 TRUE。 * `$a < $b`,如果a 严格小于a严格小于b,返回 TRUE。 * `$a > $b`,如果a 严格大于a严格大于b,返回 TRUE。 * `$a <= $b`,如果a 小于或者等于a小于或者等于b,返回 TRUE。 * `$a >= $b`,如果a 大于或者等于a大于或者等于b,返回 TRUE。 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用`===`或`!==`进行比较时则不进行类型转换,因为此时类型和数值都要比对。 编辑`/home/project/compare.php` ~~~php <?php var_dump(null == ""); var_dump(null == false); var_dump(true > false); var_dump(0 == "a"); var_dump("1" == "01"); var_dump("10" == "1e1"); var_dump(100 == "1e2"); var_dump([4,5] < [1,2,3]); var_dump((object)"Test" > "Test"); var_dump((object)"Test" > [2,3]); switch ("a") { case 0: echo "0"; break; case "a": echo "a"; break; } ~~~ 执行 ~~~bash php compare.php ~~~ 从结果可以看出 * null 或 String 和 string 比较时,将 null 转换为 "",进行数字或词汇比较 * bool 或 null 和其他类型比较时,转换为 bool,FALSE < TRUE * string,resource 或 number 相互比较时,将字符串或资源转换为数字,按普通数字比较 * array 之间比较时,具有较少成员的数组较小 * object 和其他类型比较时,object 总是更大 * array 和其他类型比较时,array 总是更大,但是比对象小 * switch 中第一个条件满足时,不会执行后面满足条件的语句