前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP开发过程的那些坑(二) ——PHP empty函数

PHP开发过程的那些坑(二) ——PHP empty函数

作者头像
用户1327360
发布2018-03-07 14:11:56
1.1K0
发布2018-03-07 14:11:56
举报
文章被收录于专栏:决胜机器学习

PHP开发过程的那些坑(二)——PHP empty函数

(原创内容,转载请注明来源,谢谢)

坑:

在工作过程中,常用empty()函数判断数组是否为空,为空时返回true,不是为空时返回false

但是,某次写代码,用到array_diff($array1, $array2)函数,该函数会判断两个数组是否相等,如果相等是返回空数组。

因此,我就很自然的想到,使用if(empty(array_diff($array1,$array2)))来判断两个数组是否一致,结果就悲剧了,一直报错。

经过不断的设断点、error_log()log,发现把array_diff挪到外面就可以正常使用。经过查资料,才发现empty函数确实是不允许嵌套函数。

分析:

查看PHP官方手册,http://php.net/manual/zh/function.empty.php,发现里面有这么一段话:“在 PHP 5.5 之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误”。在更新日志中,发现“PHP5.5.0 empty() 现在支持表达式了,而不仅仅是变量。”

因此,说明在PHP5.5或者更高的版本,是可以支持empty()里面传其他内容的,但是如果使用PHP5.5之前的版本,还是先定义一个变量,再把这变量传进empty

改进措施:

1、新定义一个变量,就上述例子:

代码语言:javascript
复制
         $tmpArray = array_diff($array1, $array2);
         if(empty($tmpArray))

2、针对trim函数,官方文档提供了一个解决方案:

如果要实现empty(trim($name)),可以使用trim($name)== false.

——written by linhxx 2017.07.08

相关阅读:

PHP开发过程的那些坑(一) ——对象拷贝

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 决胜机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关阅读:
  • PHP开发过程的那些坑(一) ——对象拷贝
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档