在 PHP 的世界里,'0.0'、'0.00'和'0.000' 'false'是否被认为为空?
在 PHP 的世界里,'0.0'、'0.00'和'0.000'是否被认为为空?
我们经常需要对0, 0.0,'0',false,null,'',"",array() 等等这类数据判断是否为空,下面来整理一下。
1、以下变量都被认为是空。
' ' (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
null
false
array( )(一个空数组)
$var;(一个声明了,但是没有值的变量)
2. 运行一下
1 <?php 2 3 if (empty(0.0)){ 4 echo 1; 5 }else{ 6 echo 2; 7 } 8 9 // 结果为1 10 11 if (empty("0.0")){ 12 echo 1; 13 }else{ 14 echo 2; 15 } 16 17 // 结果为2
说明:
1) PHP 认为 0.0 是空,同理 0.00 和 0.000 也会被等同 0.0、 '0'、"0" 一样被认为是空,所以 empty 将返回 true 来表达 PHP 的规则。
2) PHP中,'0,0'、'0.0'、'0.00'和'0.000',"false"并不被认为是空,所以 empty 将返回 false。
3. PHP作为弱语言类型,在比较值时会做隐式转换
1 <?php 2 // 比较值 3 if (0.0=='0.0'){ 4 echo 1; 5 }else{ 6 echo 2; 7 } 8 9 // 结果为1
4. 判断数组是否为空
举个例子
1 <?php 2 3 $arr = [""]; 4 if (empty($arr)) { 5 echo "数组为空"; 6 } else { 7 echo "数组不为空"; 8 } 9 10 // 结果:数组不为空
所以在判断数组是否为空的时候,应该要先用array_filter()过滤之后再来判断,否则容易出现跟预期不符的结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2017-02-28 PhpStorm+xdebug+postman调试