我想知道PHP如何在内部处理真/假比较.据我所知,true定义为1,false定义为0.当我这样做时if("a"){ echo "true";},回声为" true ".PHP如何将"a"识别为1?
Mar*_*ers 99
转换为布尔值时,以下值被视为FALSE:
FALSE本身0(零)0.0(零)'0'NULL(包括未设置的变量)其他每个值都被视为TRUE.
aki*_*uri 11
因为我已经多次访问此页面,所以我决定发布一个示例(松散的)比较测试。
结果:
"" -> false
"0" -> false
"0.0" -> true
"1" -> true
"01" -> true
"abc" -> true
"true" -> true
"false" -> true
"null" -> true
0 -> false
0.1 -> true
1 -> true
1.1 -> true
-42 -> true
"NAN" -> true
0 -> false
NAN -> true
null -> false
true -> true
false -> false
[] -> false
[""] -> true
["0"] -> true
[0] -> true
[null] -> true
["a"] -> true
{} -> true
{} -> true
{"t":"s"} -> true
{"c":null} -> true
Run Code Online (Sandbox Code Playgroud)
测试代码:
"" -> false
"0" -> false
"0.0" -> true
"1" -> true
"01" -> true
"abc" -> true
"true" -> true
"false" -> true
"null" -> true
0 -> false
0.1 -> true
1 -> true
1.1 -> true
-42 -> true
"NAN" -> true
0 -> false
NAN -> true
null -> false
true -> true
false -> false
[] -> false
[""] -> true
["0"] -> true
[0] -> true
[null] -> true
["a"] -> true
{} -> true
{} -> true
{"t":"s"} -> true
{"c":null} -> true
Run Code Online (Sandbox Code Playgroud)
概括:
===完成严格 ( ) 比较后,除true返回之外的所有内容都返回false。"") 为假0( "0")的字符串是假的NAN 是真的[]) 为假0在""(见第三项)零是假的,非零是真的.
在php中,您可以使用===运算符更明确地进行测试.
if (0==false)
echo "works"; // will echo works
if (0===false)
echo "works"; // will not echo anything
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98257 次 |
| 最近记录: |