我想知道为什么以下表达式被评估为true。
var_dump(('a' == 0)); //bool(true)
答案 0 :(得分:6)
String conversion to numbers(来自PHP手册,强调我的)
在数值上下文中计算字符串时,结果值 和类型确定如下。
如果字符串不包含任何字符'。','e'或'E' 并且数值适合整数类型限制(由...定义) PHP_INT_MAX),该字符串将被计算为整数。在所有其他 案例将被评估为浮动。
该值由字符串的初始部分给出。如果是字符串 从有效的数字数据开始,这将是使用的值。 否则,该值将为0(零)。有效数字数据为 可选符号,后跟一个或多个数字(可选地包含一个 小数点),后跟可选的指数。指数是一个 'e'或'E'后跟一个或多个数字。
示例:
git diff C -- FILE
# you can ask git to open a graphical diff viewer :
git difftool C -- FILE
答案 1 :(得分:1)
<?php
var_dump('a' === 0);