PHP的empty函数问题

最近学习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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一 : ThinkPHP配置前准备: 配置前需要安装PHP5.4.0以上版本ThinkPHP5.0完全开发手册 1...
    树懒啊树懒阅读 16,722评论 1 2
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,186评论 29 417
  • PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来...
    梦幻_78af阅读 2,128评论 1 10
  • 老将行 王维 少年十五二十时,步行夺得胡马骑。 射杀中山白额虎,肯数邺下黄须儿! 一身转战三千里,一剑曾当百万师。
    顧勇詩書阅读 333评论 0 2
  • 老屋灶头 橘黄灯下 爷爷那口大锅 煮过了多少 从容淡定的时光 走过千里风雨路 历经悲欢离合那么多 最是热腾糯米酒 ...
    午夜强盗阅读 208评论 0 1