PHP empty函数报错解决办法

PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function return value in write context

例如下面的代码:


代码如下:

<?php
echo empty(strlen('test'));

转到PHP手册里面查看,在empty函数描述的地方有以下文字:


代码如下:

Note :  empty()  only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).

得出结论:empty()只检测变量,检测任何非变量的东西都将导致解析错误!

因此,我们不能拿empty来直接检测函数返回的值,上面例子的解决方法如下:


代码如下:

<?php
$length = strlen('test');
echo empty($length);

(0)

相关推荐

  • php 启动时报错的简单解决方法

    php 启动报错 复制代码 代码如下: [root@abc lnmp]# service php-fpm start Starting php-fpm eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/k

  • php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错

    在php5.3环境下运行,常常会出现 Deprecated: Function ereg() is deprecated in...和Deprecated: Function ereg_replace() is deprecated in...这些类型的报错提示. 其原因在于:php5.3以上的版本不支持ereg()函数,而是使用preg_match()函数:不支持ereg_replace()函数,而使用preg_replace()函数. 解决方法:将不支持的函数修改为支持的函数即可.   例如

  • php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总

    从旧版升级到php5.4,恐怕最麻烦的就是htmlspecialchars这个问题了!当然,htmlentities也会受影响,不过,对于中文站来说一般用htmlspecialchars比较常见,htmlentities非常少用到. 可能老外认为网页普遍应该是utf-8编码的,于是苦了那些用GB2312,GBK编码的中文站......! 具体表现: 复制代码 代码如下: $str = "9enjoy.com的php版本是5.2.10"; echo htmlspecialchars($s

  • 安装apache2.2.22配置php5.4(具体操作步骤)

    修改 apache2.2/httpd.conf 配置文件,让apache能够解析php文件 #修改监听端口Listen 8011 #在LoadModule的最后一段后面添加下面一句话LoadModule php5_module "E:/LAMP/php5.4/php5apache2_2.dll" #修改服务器网站目录为 E:/LAMP/wwwDocumentRoot "E:/LAMP/www"#同时还有一个地方要改<Directory "E:/LAM

  • php5.4以下版本json不支持不转义内容中文的解决方法

    本文实例讲述了php5.4以下版本json不支持不转义内容中文的解决方法.分享给大家供大家参考.具体分析如下: 写ERP接口的时候遇到JAVA方接收这种json_encode后的内容 复制代码 代码如下: {"orderCode":"1401160935542399","creator":"\u751f\u6d3b\u7528\u54c1\u6d4b\u8bd5\u5c0f\u5c4b"} 其中"creator&qu

  • 如何把php5.3版本升级到php5.4或者php5.5

    今天我们这篇php的技术文章主要为各位朋友们介绍如何使用yum进行安装php的5.4或者5.5版本.当然我们使用centos6.5作为我们的测试机器.其实非常简单,只要下面的两个命令就可以轻松的进行安装php的5.4版本了. 复制代码 代码如下: yum remove php php-bcmath php-cli php-common php-devel php-fpm  php-gd php-imap php-ldap php-mbstring php-mcrypt php-mysql  ph

  • 注意:php5.4删除了session_unregister函数

    前几天安装了dedecms系统,当在后台安全退出的时候,后台出现空白,先前只分析其他功能去了,也没太注意安全,看了一下安全退出的代码,是这样写的: 复制代码 代码如下: function exitUser()  {    ClearMyAddon();    @($this->keepUserIDTag);    @session_unregister($this->keepUserTypeTag);    @session_unregister($this->keepUserChann

  • php5.4传引用时报错问题分析

    本文实例分析了php5.4传引用时报错问题.分享给大家供大家参考,具体如下: php5.3系列版本以及以前版本,传引用没有什么问题,升级到php5.4以后,传引用的地方,全报错 Fatal error: Call-time pass-by-reference has been removed in F:\work\wamp\www\test\test.php on line 6.看一下下面的例子. 例1,递归传引用,在php 5.3及以及版本,测试结果 <?php function test($

  • Windows下编译PHP5.4和xdebug全记录

    实际上我最终目的是编译得到支持 PHP5.4 的 php_xdebug.dll,而在此之前,成功编译 PHP5.4 是必须的. 编译环境以及相关软件包: 1.Microsoft Visual C++ 2008 Express Edition with SP1 2.Windows SDK 6.1 3.PHP SDK Binary Tools 4.Dependable libs 5.PHP5.4 Sources 6.Xdebug 2.2.0-dev 如果你需要的是 VC6 的编译环境,那么你需要安装

  • 探寻PHP脚本不报错的原因

    那么如果PHP脚本不报语法错,会是什么原因呢: 1. 一般的集成环境,默认会开启错误报告; 但在linux系统中,使用软件包安装的就不一定了, 此时可以查看PHP配置文件,打开错误报告 => 复制代码 代码如下: display_errors = On /* PHP配置文件路径:/uer/local/php/etc/php.ini  */ 注:PHP脚本中动态设置php.ini配置文件的方法 => 复制代码 代码如下: ini_set('display_errors', 'On'); /* 显

  • php 启动报错如何解决

    复制代码 代码如下: [root@abc lnmp]# service php-fpm start Starting php-fpm eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shm

  • PHP5.4中json_encode中文转码的变化小结

    在php5.4以前做json_encode的时候中文会被unicode编码,中文都会被编码,变成不可读的,类似"\u***"的格式,还会在一定程度上增加传输的数据量. 例如: 复制代码 代码如下: <?php $str = '中文'; echo json_encode($str); //"\u4e2d\u6587" php5.4开始 echo json_encode($str, JSON_UNESCAPED_UNICODE); //"中文"

随机推荐