Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解释PHP宏定义?_Php_Macros_C Preprocessor - Fatal编程技术网

如何解释PHP宏定义?

如何解释PHP宏定义?,php,macros,c-preprocessor,Php,Macros,C Preprocessor,对于C/C++,我认为预处理器在编译器编译程序之前进行宏处理,这就是为什么宏名必须是文字或绝对的,不允许变量声明宏名 对于PHP,我们可以这样声明:DEFINE($name,$value); 这意味着,解释器首先解释变量,然后定义宏,如运行时宏处理 这实际上让人怀疑,这真的是宏处理吗? 如果没有,那么引入像“定义”这样的关键词的目的是什么;是否具有无法更改的值 或者,如果有宏处理,那么有人能解释它是如何工作的吗?声明了一个常量。在PHP中,不能像在C中那样声明宏,通常也不需要这样做 要了解更多信

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

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

这实际上让人怀疑,这真的是宏处理吗? 如果没有,那么引入像“定义”这样的关键词的目的是什么;是否具有无法更改的值

或者,如果有宏处理,那么有人能解释它是如何工作的吗?

声明了一个常量。在PHP中,不能像在C中那样声明宏,通常也不需要这样做


要了解更多信息,请尝试Excellent

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


在运行时定义命名常量。

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

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


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

,当然也会编译解释器语言。实际上,我混淆了const和define,并假设define将像C宏一样工作。无论如何,谢谢你的链接;)。