define部份:宏不仅可以用来替代常数值,还可以用来替代表达式,以至是代码段。(宏的功用很壮大,但也轻易失足,所以其利害大小很有争议。)
宏的语法为:#define 宏称号 宏值
作为一种建媾和一种宽大程序员配合的习气,宏称号常常运用悉数大写的字母。
相干进修引荐:php编程(视频)
应用宏的长处:1)让代码更简洁明了固然,这有赖于你为宏取一个恰当的名字。一般来说,宏的名字更要注意有明白直观的意义,偶然宁可以让它长点。
2)轻易代码庇护对宏的处置惩罚,在编译历程当中称为“预处置惩罚”。也就是说在正式编译前,编译器必需先将代码涌现的宏,用其响应的宏值替代,这个历程有点你我在笔墨处置惩罚软件中的查找替代。所以在代码中运用宏表达常数,归根结柢照样运用了马上数,并没有明白指定这个量的范例。const部份常量定义的花样为:
const 数据范例 常量名 = 常量值;
而const定义的常量具有数据范例,定义数据范例的常量便于编译器举行数据搜检,使程序大概涌现毛病举行排查。常量必需一开始就指定一个值,然后,在今后的代码中,我们不允许转变此常量的值。两者之间的区分:内存空间的分派上。define举行宏定义的时刻,不会分派内存空间,编译时会在main函数里举行替代,只是纯真的替代,不会举行任何搜检,比方范例,语句组织等,即宏定义常量只是地道的置放关联,
如#define null 0;编译器在碰到null时老是用0替代null它没有数据范例,另有疑问请找C言语书本看预处置惩罚部份或许看MSDN.而const定义的常量具有数据范例,定义数据范例的常量便于编译器举行数据搜检,使程序大概涌现毛病举行排查,所以const与define之间的区分在于const定义常量排除了程序之间的不安全性.
define定义全局常量,在任何地方都可以接见const用于类成员变量定义,只能用类名接见不能变动如果初学如许显明白着就行别太钻牛角尖就行 PHP5中加入了许多面向对象的头脑,PHP5的面向对象比较靠近Java的面向对象头脑。我们这里对PHP5中的static和const关键字作用举行一下形貌,愿望对进修PHP5的朋侪有协助。
(1) staticstatic关键字在类中是,形貌一个成员是静态的,static可以限定外部的接见,由于static后的成员是属于类的,是不属于任何对象实例,其他类是无法接见的,只对类的实例同享,能肯定程序对该成员经心庇护。类的静态变量,异常相似全局变量,可以被一切类的实例同享,类的静态要领也是一样的,相似于全局函数。类的静态要领能接见类的静态的属性。别的申明的是,static的成员,必需运用self来接见,运用this会失足。
(2)constconst是一个定义常量的关键字,相似于C中的#define,可以定义一个常量,如果在程序中转变了它的值,那末会涌现毛病。举例申明上面的代码:
代码以下:
class Counter
{
private static $count = 0;//定义一个静态属性
const VERSION = 2.0;//定义一个常量
//组织函数
function __construct()
{
self::$count++;
}
//析构函数
function __destruct()
{
self::$count--;
}
//定义一个静态的要领
static function getCount()
{
return self::$count;
}
}
//建立一个实例
$c = new Counter();
//实行打印
print( Counter::getCount(). "
\n" ); //运用直接输入类名来接见静态要领Counter::getCount
//打印类的版本
print( "Version useed: " .Counter::VERSION. "
\n" );
?>
相干引荐:编程视频课程
以上就是直击php中static,const与define的运用区分的细致内容,更多请关注ki4网别的相干文章!
收藏 | 0