“常量”的广义观点是:‘稳定化的量’(比方:在计算机顺序运行时,不会被顺序修正的量;数学函数中的某一个量,比方每个细致的圆的半径、直径数值;物理学中的接近地面的重力加速度;真空中的光速数值;)下面为人人引见一下PHP中两种定义常量的要领。
引荐教程:PHP视频教程
我们这里用pi来举例。
第一种体式格局:宏定义,是将Pi定义成一种标记,此时Pi只是3.1415926的别号,在编译时期用3.1415926去庖代Pi的值。
1.define是宏定义,顺序在预处置惩罚阶段将用define定义的内容举行了替代。因而顺序运行时,常量表中并没有效define定义的常量,体系不为它分派内存。const定义的常量,在顺序运行时在常量表中,体系为它分派内存。
2.define定义的常量,预处置惩罚时只是直接举行了替代。所以编译时不能举行数据范例磨练。const定义的常量,在编译时举行严厉的范例磨练,能够防止失足。
3.define定义表达式时要注意“边缘效应”,比方以下定义: #define N 2+3 //我们料想的N值是5,我们如许运用N,int a = N/2; //我们料想的a的值是2.5,可实际上a的值是3.5缘由在于在预处置惩罚阶段,编译器将 a = N/2处置惩罚成了 a = 2+3/2;这就是宏定义的字符串替代的“边缘效应”因而要以下定义:#define N (2+3)。
第二种体式格局:是将PI定义成变量,但通知编译器它的值是牢固稳定的,如果在顺序中试图去修正它的值,在编译时会报错。
const定义的常量叫做常变量缘由有二:const定义常量像变量一样搜检范例;const能够在任何处所定义常量,编译器对它的处置惩罚历程与变量类似,只是分派内存的处所差别。
总结起来讲,引荐用const ,而不是#define 预处置惩罚指令(然则现在看到的是运用#define的较多,岂非是轻易?有待考量)
1. const 能够定义数据范例,提高了范例安全性。比方,我们上面能够指定PI 这个常量是double 范例
2. const 既然是变量(这里有点别扭,它实际上是稳定的,但称号叫做常值变量), 那末就有地点,实用面越发广
3. 语法上也更好明白一些
标记常量 #define Pi 3.1415926f; 常值变量 const float pi 3.1415926f;
以上就是php中定义常量的两种要领的细致内容,更多请关注ki4网别的相干文章!