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 5.5 新特性

    解析PHP 5.5 新特性

    本篇文章是对PHP 5.5 的新特性进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • PHP中文乱码解决方案

    PHP中文乱码解决方案

    PHP+MYSQL做网站开发通常都会碰到浏览器输出中文字符时乱码,这个问题的原因主要是因为HTML内容编码,PHP文件编码和MySQL数据库编码这三者不一致造成的。今天我们来具体探讨下出现中文乱码后的解决方案。
    2015-03-03
  • Wordpress php 分页代码

    Wordpress php 分页代码

    Wordpress php 分页代码,大家可以参考下。
    2009-10-10
  • php中$美元符号与Zen Coding冲突问题解决方法分享

    php中$美元符号与Zen Coding冲突问题解决方法分享

    Zen Coding是使用仿CSS选择器的语法来快速开发HTML和CSS ——由Sergey Chikuyonok开发。 Zen Coding由两个核心组件组成:一个缩写扩展器(缩写为像CSS一样的选择器)和上下文无关的HTML标签对匹配器。
    2014-05-05
  • PHP程序61条面向对象分析设计的经验小结

    PHP程序61条面向对象分析设计的经验小结

    你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 。 ----- Arthur J.Riel
    2008-11-11
  • PHP实现一维数组转二维数组的方法

    PHP实现一维数组转二维数组的方法

    这篇文章主要介绍了PHP实现一维数组转二维数组的方法,实例分析了php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 详解thinkphp的Auth类认证

    详解thinkphp的Auth类认证

    Auth类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程,很少人知道它,它其实比RBAC更方便。本文带着大家来详细了解它。
    2021-05-05
  • PHP PDO和消息队列的个人理解与应用实例分析

    PHP PDO和消息队列的个人理解与应用实例分析

    这篇文章主要介绍了PHP PDO和消息队列的个人理解与应用,结合实例形式分析了PHP pdo与消息队列相关配置、使用方法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • PHP入门教程之PHP操作MySQL的方法分析

    PHP入门教程之PHP操作MySQL的方法分析

    这篇文章主要介绍了PHP操作MySQL的方法,结合实例形式分析了php针对mysql数据库的基本连接、查询、修改、更新及删除等常见技巧,并附带了Zend开发环境的编码设置方法说明,需要的朋友可以参考下
    2016-09-09
  • PHP使用mysql与mysqli连接Mysql数据库用法示例

    PHP使用mysql与mysqli连接Mysql数据库用法示例

    这篇文章主要介绍了PHP使用mysql与mysqli连接Mysql数据库的方法,结合实例形式分析了mysql与mysqli操作数据库的连接、查询、断开的相关实现技巧,需要的朋友可以参考下
    2016-07-07

最新评论