3

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

致命错误:无法在第 35 行的 C:\webserver\htdocs\friendproject2\includes\classes\User.class.php 的写入上下文中使用方法返回值

这是麻烦的部分。

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

此代码在我的委托人中,如果尚未为 $this->session->get('user_id') 设置值,那么它将返回 false 而不是数字。如您所见,我希望检查此值是否为数字,甚至没有设置。

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

4

3 回答 3

13

您不能将isset用于函数的结果。请考虑以下代码:

if( $this->session->get('user_id') ){
    //run code
}
于 2010-01-17T00:24:58.363 回答
13

isset() 仅适用于变量,因为传递其他任何内容都会导致解析错误。要检查是否设置了常量,请使用 defined() 函数。

来自PHP 手册

于 2010-01-17T00:25:47.193 回答
1

您不能isset在函数上使用。但是,由于false,0''all 都等同于虚假陈述,请以这种方式编写测试:

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

这样,您就已经运行了测试一步分配了变量。

于 2010-01-17T00:29:19.447 回答