我刚刚将一个疯狂的错误简化为这个问题标题中的内容。我相信Php认为0 == '%'(或任何其他特殊字符)有一个完全合理的解释。我想在StackOverflow上得到这个解释!
我刚刚将一个疯狂的错误简化为这个问题标题中的内容。我相信Php认为0 == '%'(或任何其他特殊字符)有一个完全合理的解释。我想在StackOverflow上得到这个解释!
如果严格比较运算符不直接适用,如果您希望将两个值作为字符串进行比较,则可以使用strcmp()函数。一个例子可能是两个值都是变量,类型可能是字符串或整数。与强制转换为字符串然后使用严格相等检查相比,strcmp()可以更简洁。
php的类型强制转换非常方便。但是,如果您不了解它的许多规则(有些可能会产生影响),您应该尽量避免使用它。请参见http://www.php.net/manual/en/types.comparisons.php
因为'%'不是真的,所以它应该是假的(0),所以当然0=='%'
;-) 虽然很有趣
这是因为它将“%”转换为数字并且结果为0。
然而,PHP将字符串转换为数字的方式在我看来纯粹是邪恶的,因为非数字字符串不一定会导致结果为零。
如果以数字开头,则php将返回它可以找到的第一个数字,并忽略字符串的其余部分。所以:
"2 times 5 equals 10"
当转换为数字时,将会得到2。