美文网首页
PHP的empty函数问题

PHP的empty函数问题

作者: 皮一下怎么了 | 来源:发表于2018-09-10 13:07 被阅读0次

    最近学习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,访问正常

    参考资料
    http://www.php.net/manual/zh/function.empty.php

    相关文章

      网友评论

          本文标题:PHP的empty函数问题

          本文链接:https://www.haomeiwen.com/subject/ilksgftx.html