PHP 中 if($args) 与 if(!empty($args)) 的区别 财富值14

2016-10-25 10:52发布

在编码的时候经常有个困惑,判断一个变量非空:
方式1:if($args){...do something..}
方式2:if(!empty($args)) {...do something...}

这两种方式的效果一样吗,在执行效率上哪种更好一些?
多谢解答!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答

关键在与if() 和empty()的判断。
copy写的日志吧 ,不过只有if的:

第一种方法在$args未定义的情况下会出现警告,在PHP中出现任何Error都会造成不小的性能损失,这主要是因PHP存在错误处理机制造成的。

简而言之,如果你能保证$args已经定义,大可使用第一种。如果不行,则建议使用第二种。

大多数情况下!empty会更安全,它可以把unset变量作为参数的情况下也不会报错,例如:

mishen - whatsns产品经理
5楼-- · 2016-10-25 11:12

不一样,如果$args == 0,那$args == false

第二种方法下empty能够处理未定义的参数,可以避免警告。另外empty是指令而非函数,运行效率并不会比第一种慢太多。

这是if的判断结果,empty的话,看文档吧。

如果数组不存在元素2就会报错。应该这样写

方式2:empty判断非空值,空值包括

方式1: 涉及了类型转换吧

一周热门 更多>