内部的PHP常量

Ray*_* S. 2 php constants

在PHP中有常量问题,想知道是否有人可以解释:

这很有效

const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

就像这样:

if (true) 
        define('_ROOT','d:/aphp/www');

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

但这会给出错误:解析错误:语法错误,意外T_CONST

if (true) 
    const _ROOT = 'd:/aphp/www';

echo "r="._ROOT;
Run Code Online (Sandbox Code Playgroud)

我使用的是php 5.3.2

Sha*_*ran 8

那是因为 ..

const关键字必须在顶层范围声明

来自PHP文档

注意:与使用define()定义常量相反,使用const关键字定义的常量必须在顶级作用域声明,因为它们是在编译时定义的.这意味着它们不能在函数,循环或if语句中声明.

Source