php-empty()函数的一个小坑

在测试机上写代码的时候遇到一个坑,代码如下

$a=' aabbcc';
if(empty(trim($a))){
    echo $a;
}
echo 111;

实际执行的过程中,代码莫名其妙的中断执行了,打印不出111,也没有抱任何错误。于是我复制到我的虚拟机上去打印,结果又是正常了。百思不得其解,查看官方手测找到了原因。

原来在php5.5以前

empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用:
empty(addslashes($name))。

查了一下php版本,果然我的测试机上的版本是5.2,虚拟机上的版本是5.6的。

顺便提一下,估计用到的不多,empty()是一个语言结构而非函数,因此它无法被可变函数调用。

所以如下代码会报错:

$a = 'empty';
var_dump($a(111));


----------
Fatal error: Call to undefined function empty() in testemp.php 

就写这么多吧,多看手册多记录。

额,博文要大于500字才能提交,那就在写点‘废话’吧。新的一年的第一篇博客,大体上是对手册的摘抄。作为一个快两年的phper,有点惭愧。回顾了一下,开年两年的博客,很少去研究新的东西,以前博文也基本上是些很基本浅显的东西,还有些也是词不达意,或者东西没有摸透就把各个博客上看到的结论摘抄过来做自己的心得。很后悔,难道两年就没有什么积累值得分享的吗?应该是有的,但往往没有及时记录就忘了,没有整理吸收,以后可能相同的场景遇到的问题还得去花费时间去排查解决。

作为一个半调子,在没有达到一定的技术深度前,我想写博客更多的意义在于重复的去整理归纳遇到的新知识,加深映象与熟练度,同时,提高自己的表达能力。(何为深入浅出,娓娓道来,看看阮一峰的博客就知道了)尽然大神阮一峰的博客都有很多介绍基本的命令,函数,语法的博文,那作为后来者还有什么惭愧了?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值