PHP empty函数报错解决办法_php技巧

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);

时间: 2024-07-29 17:03:35

PHP empty函数报错解决办法_php技巧的相关文章

PHP empty函数报错解决办法

 这篇文章主要介绍了PHP empty函数在检测一个非变量情况下报错的解决办法,需要的朋友可以参考下 PHP开发时,当你使用empty检查一个函数返回的结果时会报错:Fatal error: Can't use function return value in write context   例如下面的代码:    代码如下: <?php  echo empty(strlen('test'));   转到PHP手册里面查看,在empty函数描述的地方有以下文字:   代码如下:Note :  e

eclipse导入appcompat项目报错解决办法

eclipse导入appcompat项目报错解决办法 我们在eclipse导入开源项目后,经常会发现找不到类似Theme.AppCompat.Light.DarkActionBar的style,解决办法也比较简单,就是导入com.android.support:appcompat-v7包,不过又两点需要注意: 不能只导入appcompat-v7.jar包,而是要导入appcompat-v7项目 因为这个项目包含有资源文件,只导入jar包没有效果,这个项目地址是在: -\android-sdk\e

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

作为我最喜欢使用的函数之一,今天也终于发现这个函数的恶魔之处.洋洋洒洒写了以下代码,本地测试一切ok,到服务器上就SB了. 复制代码 代码如下: if(strlen($passwd) < 6 || empty($preg_replace("/\d/", "", $passwd))) {    //do something} 大致的意思就是,密码必须大于6位切不能只由数字组成.找遍服务器日志,发现如下错误: 复制代码 代码如下: PHP Fatal error:

[Unity3d]Unity web平台 SecurityException报错解决办法

最近被一个问题困扰了好久,连续三天都一直在想办法解决,各种能参考的资料都看了,包括硬着头皮看全英文的官网,努力寻求解决办法,昨晚搞到凌晨深夜两点可还是失望的离开了办公室,到底是什么问题呢?我相信如果Unity3D做网络游戏或者动态加载资源的同志们都会碰到,那就是Unity3d动态加载资源然后切换到web平台会报错,关于security的一个错误,官方的解释是:http://docs.unity3d.com/Documentation/Manual/SecuritySandbox.html,努力看

ECSHOP完美解决Deprecated: preg_replace()报错的问题_php技巧

随着PHP5.5 的普及,ECSHOP系统又爆出了新的错误.PHP发展到PHP5.5版本以后,有了很多细微的变化.而ECSHOP官方更新又太慢,发现这些问题后也不及时升级,导致用户安装使用过程中错误百出.说了半天,这个新错误到底是什么呢,它的完整错误提示信息是这样的: Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in....... 注意:不是所有人的ECS

configure: error: OpenSSL libcrypto not found 报错解决办法

今天安装一个ss代理的时候发生一个报错,./configure提示如下: configure: error: OpenSSL libcrypto not found crypto是是OpenSSL 加密库[lib], 需要openssl-devel包. 解决办法: yum -y install openssl-devel  问题搞定.

PHP中in_array函数使用的问题与解决办法_php技巧

先介绍一下需求背景: 发票方式: 0=捐赠(不要问我为什么,历史原因) 1=对中寄送 2=索取 3=电子发票 现在要对用户提交的数据进行检测: php;auto-links:false;">if(!in_array($_POST['invoice_action'], array(0,1,2,3))){ throw new Exception('请选择正确的发票方式'); } 这个时候出现一个问题,如果压根就不存在$_POST['invoice_action']这个值,为什么没有抛出异常?

sysctl -P net.bridge.bridge-nf-call-ip6tables报错解决办法

问题症状 修改 linux 内核文件 #vi /etc/sysctl.conf后执行sysctl  -P 报错 error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables" is an unknown key error: "net.bridge.bridge-nf-call-arptables"

wordpress博客feed页面报错解决办法

google chrome报的错误如下: This page contains the following errors: error on line 4 at column 6: XML declaration allowed only at the start of the document Below is a rendering of the page up to the first error.   翻译过来的错误就是:xml文档申明只能在文档的开头部分. 于是我点开chrome的源文