对于C / C ++,我认为预处理器在编译器编译程序之前进行宏处理,这就是宏名称必须是文字或绝对的原因,没有变量允许声明宏名称。
对于PHP,我们可以这样声明:DEFINE($ name,$ value); 这意味着,解释器首先解释变量然后定义宏,即像运行时宏处理。
这实际上产生了一个疑问,那真的是宏观处理吗? 如果不是那么引入像'define'这样的关键字的目的是什么?拥有无法改变的价值?
或者如果有宏观处理,那么任何人都可以解释一下它是如何工作的吗?
答案 0 :(得分:5)
为了完整起见,是在编译时定义的常量:
const MY_CONSTANT = 'something';
与使用define()定义常量相反,使用const关键字定义的常量必须在顶级作用域声明,因为它们是在编译时定义的。这意味着它们不能在函数,循环或if语句中声明。
这是针对当前的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
在运行时定义命名常量。