empty和取非的区别?

xcode21 2013-01-16 02:41:45
在平常的编程过程中,我发现empty和对变量取非基本上是一样的。
比如 $a=0 empty($a)和!$a是一样的
而这个$a,无论是空字符串,字符串0, 数字0, 布尔false, null ,基本上都是一样的。

而任何不属于上述内容的东西,都可以在条件中当做真值来处理。

所以不知道,if(empty($a))和if(!$a)是否可以通用
if($a) 和 if (!empty($a))是否可以通用?
...全文
272 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
查看官网empty的说明手册,很清楚的。 如果怕报错,可以先用isset来试探是否有
www_7di_net 2013-01-17
  • 打赏
  • 举报
回复
引用 3 楼 xcode21 的回复:
引用 1 楼 sibang 的回复:有差異,如果用empty,就算你的變量沒有定義都沒關係,但是如果用!非的話變量不定義是不行的. 你測試看看下邊的兩行代碼就知道了 <?PHP var_dump(empty($a)); var_dump(!$a); 对于非输出的地方,比如判断,如if(),while()这样的地方是否有差异呢? 比如$a没定义,但是if……
有,差異也是一樣的.
xuzuning 2013-01-16
  • 打赏
  • 举报
回复
在屏蔽掉 Notice 级别错误时,两者是一样的
ohmygirl 2013-01-16
  • 打赏
  • 举报
回复
http://php.net/manual/en/types.comparisons.php 看empty和bool的区别。
xcode21 2013-01-16
  • 打赏
  • 举报
回复
引用 1 楼 sibang 的回复:
有差異,如果用empty,就算你的變量沒有定義都沒關係,但是如果用!非的話變量不定義是不行的. 你測試看看下邊的兩行代碼就知道了 <?PHP var_dump(empty($a)); var_dump(!$a);
对于非输出的地方,比如判断,如if(),while()这样的地方是否有差异呢? 比如$a没定义,但是if ($a) 依旧是假 if (!$a)依旧是真。 是否就没有差异了?
www_7di_net 2013-01-16
  • 打赏
  • 举报
回复
223494678 這是我的qq群,有興趣可以來交流
www_7di_net 2013-01-16
  • 打赏
  • 举报
回复
有差異,如果用empty,就算你的變量沒有定義都沒關係,但是如果用!非的話變量不定義是不行的. 你測試看看下邊的兩行代碼就知道了 <?PHP var_dump(empty($a)); var_dump(!$a);

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧