为什么以下表达式被评估为true?

时间:2016-10-27 07:30:54

标签: php

我想知道为什么以下表达式被评估为true。

var_dump(('a' == 0)); //bool(true)

2 个答案:

答案 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);

https://eval.in/667364