如何解释PHP宏定义?

时间:2011-07-02 07:48:06

标签: php macros c-preprocessor

对于C / C ++,我认为预处理器在编译器编译程序之前进行宏处理,这就是宏名称必须是文字或绝对的原因,没有变量允许声明宏名称。

对于PHP,我们可以这样声明:DEFINE($ name,$ value); 这意味着,解释器首先解释变量然后定义宏,即像运行时宏处理。

这实际上产生了一个疑问,那真的是宏观处理吗? 如果不是那么引入像'define'这样的关键字的目的是什么?拥有无法改变的价值?

或者如果有宏观处理,那么任何人都可以解释一下它是如何工作的吗?

4 个答案:

答案 0 :(得分:5)

为了完整起见,在编译时定义的常量:

const MY_CONSTANT = 'something';
  

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

From the PHP Manual

这是针对当前的PHP版本5.3。

答案 1 :(得分:4)

Define()声明一个常数。在PHP中,您不能像在C中那样声明宏,通常不需要。

如需更多信息,请尝试优秀的php website

答案 2 :(得分:1)

PHP是一种解释型语言 - 我们不能在PHP案例中谈论编译。 DEFINE用于定义常量 - 例如PI

答案 3 :(得分:1)

http://php.net/manual/en/function.define.php

在运行时定义命名常量。