thinkphp - php类中成员使用常量赋值错误
PHP中文网
PHP中文网 2017-04-11 10:21:03
[PHP讨论组]

一个类中:
protected $config_file = DB_PATH . 'db.conf';
就出现了错误,php5.4版本的:
语法错误: unexpected '.', expecting ',' or ';'
但在5.6版本上没有出现错误

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
怪我咯

这个是PHP版本支持的问题。

PHP 5.6及其以上版本是支持这样处理的。除了定义类的属性,在定义常量,设定函数或方法的默认参数等只接受静态值(static values)的地方,都支持静态表达式(static expressions),字符串拼接(.)是其中一个所支持的操作。

在之前的 PHP 版本中, 必须使用静态值来定义常量,声明属性以及指定函数参数默认值。 现在你可以使用包括数值、字符串字面量以及其他常量在内的数值表达式来 定义常量、声明属性以及设置函数参数默认值。

见:http://cn2.php.net/manual/zh/...。

另外,你的老大是错的,常量是在编译时(compile time)处理的,DB_PATH在框架启动的时候肯定已经申明,应该不会没有解析

巴扎黑

语法错误啊,根据提示的行号看看,是不是;和,用成中文的了。

PHPz

问了老大已经明白了,在声明类的成员时,不能使用静态常量赋值,这个时候DB_PATH还没有解析,赋值应该放到构造方法中

怪我咯

5.4太低了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号