在PHP中遇到常量问题,想知道是否有人可以解释:
这是有效的
const _ROOT = 'd:/aphp/www';
echo "r="._ROOT;
就像这样:
if (true)
define('_ROOT','d:/aphp/www');
echo "r="._ROOT;
但是这会给出错误:解析错误:语法错误,意外T_CONST
if (true)
const _ROOT = 'd:/aphp/www';
echo "r="._ROOT;
我使用的是php 5.3.2
答案 0 :(得分:7)
那是因为..
const
关键字必须在顶级范围内声明
来自PHP文档
注意:与使用define(),常量定义常量相反 使用const关键字定义的必须在顶层声明 范围,因为它们是在编译时定义的。这意味着他们 不能在函数,循环或if语句中声明。