PHP5.5和之前的版本empty函数的不同之处

 更新时间:2014年06月13日 10:48:58   投稿:junjie  
这篇文章主要介绍了PHP5.5和之前的版本empty函数的不同之处,开发时需要注意,假如你的本地开发PHP版本是PHP5.5以上,而服务器低于PHP5.5,更要注意这个问题,需要的朋友可以参考下

作为我最喜欢使用的函数之一,今天也终于发现这个函数的恶魔之处。洋洋洒洒写了以下代码,本地测试一切ok,到服务器上就SB了。

复制代码 代码如下:

if(strlen($passwd) < 6 || empty($preg_replace("/\d/", "", $passwd))) {
    //do something
}

大致的意思就是,密码必须大于6位切不能只由数字组成。找遍服务器日志,发现如下错误:
复制代码 代码如下:

PHP Fatal error: Can't use function return value in write context in /xxx/xxx/xx.php on line xxx

google了一下,大概是说,empty的参数不能为函数。我靠,本地明明是好的。看了下本地的PHP是5.5的,服务器是5.3的。难道这函数在2个版本之间就进化了么?找遍了PHP官方的文档没有发现任何端倪,然后google狂搜,不小心点到了PHP英文文档界面,在empty函数的介绍下面,发现了一行小字:

复制代码 代码如下:

Note:
Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.

恶魔啊,不带这么坑中文用户的。总结下empty函数的使用场景:

1.PHP 5.5之前的版本,这个函数是用来检查变量的赋值是否为0, false, 空字符串, null。任何非变量形式的参数都是导致这个函数报错。
2.PHP 5.5这个函数可以应用于任何值,而不局限于变量。可以为常量、函数返回值等等。

相关文章

  • PHP中overload与override的区别

    PHP中overload与override的区别

    本文主要介绍了PHP中overload与override的区别。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • PHP实现关键字搜索后描红功能示例

    PHP实现关键字搜索后描红功能示例

    这篇文章主要介绍了PHP实现关键字搜索后描红功能,结合实例形式分析了php数据库连接、查询、字符串转换等相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • phpQuery采集网页实现代码实例

    phpQuery采集网页实现代码实例

    这篇文章主要介绍了phpQuery采集网页实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • PHP实现无限极分类的两种方式示例【递归和引用方式】

    PHP实现无限极分类的两种方式示例【递归和引用方式】

    这篇文章主要介绍了PHP实现无限极分类的两种方式,结合实例形式分析了php基于递归和引用方式进行数组遍历的相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • php+mysql实现用户注册登陆的方法

    php+mysql实现用户注册登陆的方法

    这篇文章主要介绍了php+mysql实现用户注册登陆的方法,可实现简单的用户注册登录的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • PHP实现的文件上传类与用法详解

    PHP实现的文件上传类与用法详解

    这篇文章主要介绍了PHP实现的文件上传类与用法,结合实例形式较为详细的分析了PHP文件上传类的定义与具体使用方法,需要的朋友可以参考下
    2017-07-07
  • 利用PHP实现RPC的代码示例

    利用PHP实现RPC的代码示例

    RPC是一种计算机通信协议,用于使一个计算机程序可以调用另一个运行在不同计算机上的程序的过程或函数,并且无需了解底层网络细节,本文给大家详细介绍了如何利用PHP实现RPC,需要的朋友可以参考下
    2023-10-10
  • PHP基于session.upload_progress 实现文件上传进度显示功能详解

    PHP基于session.upload_progress 实现文件上传进度显示功能详解

    这篇文章主要介绍了PHP基于session.upload_progress 实现文件上传进度显示功能,结合实例形式分析了php5.4版本session.upload_progress特性实现文件上传进度显示的相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • thinkphp在低版本Nginx 下支持PATHINFO的方法分享

    thinkphp在低版本Nginx 下支持PATHINFO的方法分享

    本文给大家分享的是如何让thinkPHP在低版本的Nginx下支持PATHINFO去掉index.php路径的方法,十分的简单实用,思路也很巧妙,有需要的小伙伴可以参考下
    2016-05-05
  • php绘图中显示不出图片的原因及解决

    php绘图中显示不出图片的原因及解决

    php绘图首先要确认gd库是否启用,到php.ini文件中,找到extension=php_gd2.dll将前面的;去掉,重新启动服务器
    2014-03-03

最新评论