内部的PHP常量

时间:2014-02-17 08:44:45

标签: php constants

在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

1 个答案:

答案 0 :(得分:7)

那是因为..

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

来自PHP文档

  

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

Source