PHP错误无法使用方法返回>写入上下文中的值

时间:2010-01-17 00:22:45

标签: php class constants isset

我在PHP类中遇到此错误...

  

致命错误:无法使用方法返回   写入上下文中的值   C:\网络服务器\ htdocs中\ friendproject2 \包括\类\ User.class.php   第35行

这是陷入困境的部分。

if(isset($this->session->get('user_id')) && $this->session->get('user_id') != ''){
    //run code
}

此代码在我的控制器中,尚未为$ this-> session-> get('user_id')设置值,则它将返回false而不是Number。因此,您可以看到我希望检查此值是否为数字,或者甚至没有设置。

任何有关修复的帮助表示赞赏。

3 个答案:

答案 0 :(得分:14)

您无法使用 isset 作为功能的结果。请考虑以下代码:

if( $this->session->get('user_id') ){
    //run code
}

答案 1 :(得分:12)

  

isset()仅适用于变量   传递任何其他东西将导致一个   解析错误。用于检查常量   设置使用defined()函数。

来自PHP Manual

答案 2 :(得分:1)

您无法在功能上使用isset。但是,由于false0''都等同于虚假陈述,请以这种方式编写测试:

if( $id = $this->sessions->get('user_id') ){
   // Will only run if $id does not equal '', False, or 0
}

通过这种方式,您可以在一步中运行测试分配变量。