我正在阅读boolean的PHP文档.
其中一条评论说0 =='all'是真的.
http://php.net/manual/en/language.types.boolean.php#86809
我想知道它是如何成真的.
文档说除了'0'之外所有非空字符串都是真的.
所以'all'是真的,0是假的.
false == true 应该是假的.
但:
if(0=='all'){
echo 'hello';
}else{
echo 'how are you ';
}
Run Code Online (Sandbox Code Playgroud)
打印'你好'.
在PHP中,运算符==和!=不比较类型.因此,PHP会自动将'all'转换为0的整数.
echo intval('all');
Run Code Online (Sandbox Code Playgroud)
您可以使用===运算符来检查类型:
if(0 === 'all'){
echo 'hello';
}else{
echo 'how are you ';
}
Run Code Online (Sandbox Code Playgroud)
请参阅松散比较表.
由于左操作数是一个整数,php 会尝试将第二个操作数转换为整数。因此,由于字符串的整数表示为零,因此您有一个true背部。如果更换操作员,您会得到相同的结果。
正如 Bhumi 所说,如果您需要这种比较,请使用===.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |