Kul*_*ksi 2 php macros c-preprocessor
对于C/C++,我认为预编译器在编译器编译程序之前执行宏处理,这就是为什么宏名称必须是文字或绝对的,没有变量允许声明宏名称.
在PHP的情况下,我们可以这样声明:DEFINE($ name,$ value); 这意味着,解释器首先解释变量然后定义宏,即像运行时宏处理.
这实际上产生了一个疑问,那真的是宏观处理吗?如果不是那么引入像'define'这样的关键字的目的是什么?有不能改变的价值?
或者,如果有宏观处理,那么任何人都可以解释,它是如何工作的?
为了完整性的缘故,有是是在编译时定义的常数:
const MY_CONSTANT = 'something';
Run Code Online (Sandbox Code Playgroud)
与使用define()定义常量相反,使用const关键字定义的常量必须在顶级作用域声明,因为它们是在编译时定义的.这意味着它们不能在函数,循环或if语句中声明.
这是针对当前的PHP版本5.3.
| 归档时间: |
|
| 查看次数: |
1537 次 |
| 最近记录: |