php调用empty出现错误Can't use function return value in write context

php调用empty出现错误Can‘t use function return value in write context

2012-10-28 09:33:22 | 11391次阅读 | 评论:0 条 | itokit 

今天的一个简单程序:

C/C++ Code复制内容到剪贴板

  1. protected function _isLogin() {
  2. if(empty(cookie(C(‘itokit_com‘)))) {
  3. $this->error(‘未登录后台,请先登录‘, ‘Public/login‘);
  4. }
  5. }

运行这个方法,竟然返回以下错误:
Can‘t use function return value in write context E:\www\www.itokit.com\js\Lib\Action\Jsadmin\CommonAction.class.php 第 16 行.

这个错误的原因是由于:empty函数参数必须为variable,不能为其它函数的返回值,包括str_replace,trim等等
而我的empty里使用了cookie有返回值的函数。所以就报了这个错误的了。
ok,知道错误原因,修改下即可了:

PHP Code复制内容到剪贴板

  1. protected function _isLogin() {
  2. $itokitname = cookie(C(‘JSADMIN_USER‘));
  3. if(emptyempty($itokitname)) {
  4. $this->error(‘未登录后台,请先登录‘, ‘Public/login‘);
  5. }
  6. }

好了,问题解决的了。大家如何有碰到像我这样的小问题,可以把变量先获取到,再使用empty哦。

php的其他使用错误相关文章:
1、如何正确理解PHP程序错误信息的表示含义
2、如何正确理解PHP的错误信息
3、新手入门:PHP网站开发中常见问题汇总

php调用empty出现错误Can't use function return value in write context

时间: 2024-10-13 22:23:07

php调用empty出现错误Can't use function return value in write context的相关文章

关于isset使用产生Can't use function return value in write context错误

在使用isset检测session的一个取值是否存在时,产生了这个问题 翻译一下:不能在填写的内容中使用函数的返回值.然后我查看了php手册看isset函数的使用:isset()只能用于变量,因为传递任何其它参数都将造成解析错误. 所以返回值不是变量就产生了错误.我当时的错误代码是这样的 if(!isset(session('id'))||!isset(session('account'))){ $this->redirect('Login/index'); } 改后的代码为 $id=sessi

php调用empty报错

php调用empty时,出现“Can't use function return value in write context”错误. 源代码如下: if(empty(session("username"))) $this->redirect("Manager/login"): 错误原因:empty函数不能使用返回值作为参数. 修改如下即可: $ischeck = session("username"); if(empty($ischeck

AE开发中,对 COM 组件的调用返回了错误 HRESULT E_FAIL,在地理处理中,即GP工具处理时出错

ArcgisEngine二次开发中,进行地理处理,即:相交操作,交集取反操作,擦除操作等过程中,如果权限分配不当,就会出现上面对 COM 组件的调用返回了错误 HRESULT E_FAIL 的错误 原因如下:在进行擦除,交集取反等高级操作时,必须是ArcgisInfo级别的许可授权,否则无法进行操作,而相交操作用ArcgisEngine级别即可.(不稳定,会出错,建议2) 解决如下:1.如何使用licenceControl控件选择ArcgisInfo选项即可,同时选中其中的Spatial Ana

汇编相关(ASCII码字符表 DEBUG命令 BIOS功能调用表 DOS功能调用表 汇编语言错误信息表)

汇编相关 一些关于汇编的常用东西,包括: ASCII码字符表 DEBUG命令 BIOS功能调用表 DOS功能调用表 汇编语言错误信息表 ASCII码字符表 DEBUG命令 BIOS功能调用表 DOS功能调用表 汇编语言错误信息表

对COM 组件的调用返回了错误 HRESULT E_FAIL

.net ppt转pdf时报以下错误: 对COM 组件的调用返回了错误 HRESULT E_FAIL 在服务器端打开PPT,选项--另存为--PDF,发现PowerPoint报了个错误: “无法找到打印机 Microsoft XPS Document Writer”. 再打开Word,另存为PDF,没有此类错误. 解决方案: 马上打开Print Spooler服务...

解决WCF调用时出现错误:“创建MTOM消息读取器时出错”

如题,查询一个数据集, 存储过程返回如:select * from B 中间层定义  public DataSet GetTable(string 查询条件); 客户端定义  DataSet ds = wcfClient.GetTable("") 以前一直正常着,查询也很快速,这两天不知修改到哪了,所有的查询如果返回记录较大时(100条左右),客户端就会出现服务端返回的异常错误"创建MTOM消息读取器时出错" 客户端 app.config 配置如下 <syst

调用empty()而不是检查size()是否为0

 对任一容器C,代码if (c.size()== 0)本质上与if (c.empty())是等价的.既然如此,为什么要偏向于某一种形式呢,尤其是考虑到empty()通常被实现为内联函数,并且它所做的仅仅是返回size()是否为0. 理由很简单:empty()对所有的标准容器都是常数时间操作,而对一些list实现,size()耗费线性时间. 原因:在所有的标准容器中,只有list具有把元素从一处链接到另一处而不需要拷贝任何数据的能力.把一个区间从一个list链接到另一个list可以通过常数时间

c/c++ socket API 调用后的错误判断 perror errno

socket API 调用后的错误判断 perror errno 调用完socket API后,需要判断调用是否成功与失败.如果失败,会自动设置errno(是个整数), 并且用perror可以打印出具体的错误信息. 注意点: 1,如果有多个socket API调用失败,errno存放的是最后一个失败的API #include <iostream> #include <sys/types.h> #include <sys/socket.h> #include <un

通过工厂模式批量创建对象后调用其中方法 出现XXXis not a function()问题原因

//通过工厂模式批量创建 function Computer(color,weight,logo){ var obj=new Object(); obj.color=color; obj.weight=weight; obj.logo=logo; obj.play=function(){ console.log(obj.color+obj.weight); }; return obj;            //切记一定要有返回值,返回一个对象 } 如上,我们已经创建了一个构造函数用于生成我们的