我在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。因此,您可以看到我希望检查此值是否为数字,或者甚至没有设置。
任何有关修复的帮助表示赞赏。
答案 0 :(得分:14)
您无法使用 isset 作为功能的结果。请考虑以下代码:
if( $this->session->get('user_id') ){
//run code
}
答案 1 :(得分:12)
isset()仅适用于变量 传递任何其他东西将导致一个 解析错误。用于检查常量 设置使用defined()函数。
来自PHP Manual。
答案 2 :(得分:1)
您无法在功能上使用isset
。但是,由于false
,0
和''
都等同于虚假陈述,请以这种方式编写测试:
if( $id = $this->sessions->get('user_id') ){
// Will only run if $id does not equal '', False, or 0
}
通过这种方式,您可以在一步中运行测试和分配变量。