IF内的PHP常量[重复]

Posted

技术标签:

【中文标题】IF内的PHP常量[重复]【英文标题】:PHP Constant inside IF [duplicate] 【发布时间】:2014-03-16 11:17:39 【问题描述】:

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】:

那是因为..

const 关键字必须在***作用域中声明

来自 PHP 文档

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

Source

【讨论】:

谢谢,它被隐藏在“注释”中php.net/language.constants.syntax

以上是关于IF内的PHP常量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

B. 常见的常量

php中的const和static

在类常量PHP中组合位标志[重复]

PHP中使用if的时候为什么建议将常量放在前面?

php常量介绍以及一些简单用法

php之常量