最近学习ThinkPHP5,在看一个教程过程中有一段这样的代码
protected function _initialize()
{
parent::_initialize();
define('USER_ID',Session::get('user_id'));
}
protected function isLogin()
{
if(empty(USER_ID)) {
$this->error('用户未登录,无权访问',url('user/login'));
}
}protected function alreadyLogin()
{
if(!empty(USER_ID)) {
$this->error('用户已登录,请勿重复登录',url('index/index'));
}
功能是用来检测用户登录状态并防止重复登录的,但是教程里运行正常,自己本地运行一直报错,开启了ThinkPHP的debug看到报错信息
看了好久没发现问题,后面才知道empty函数对于不同的PHP版本使用也有区别,在PHP5.5之前,empty()仅支持变量,任何其他东西将会导致一个解析错误。这里由于本地PHP版本是5.4.45,因此empty函数里面不能使用常量,这也是报错的原因,因此把PHP切换为5.5.38重启PHP,访问正常
网友评论