PHP错误无法在写上下文中使用方法return> value

Jas*_*vis 3 php class constants isset

我在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
}
Run Code Online (Sandbox Code Playgroud)

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

任何帮助修复赞赏.

St.*_*and 14

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

if( $this->session->get('user_id') ){
    //run code
}
Run Code Online (Sandbox Code Playgroud)

  • 请记住,如果您的应用程序允许user_id的值为0,那么这将失败,因为0的计算结果为false.在许多应用程序中,user_id为0可能不太可能,但仍想指出它. (4认同)
  • 哈!学到了一些东西.+1 (3认同)
  • 嗯,现在我更彻底地阅读了OP的问题,我看到他提到如果没有user_id,方法返回false.不过,也许:if(false!== $ this-> session-> get('user_id'))...可能会多一点保存. (2认同)

Ali*_*xel 12

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

PHP手册.