直击php中static,const与define的使用区别

互联网 20-8-12

宏不仅可以用来代替常数值,还可以用来代替表达式,甚至是代码段。(宏的功能很强大,但也容易出错,所以其利弊大小颇有争议。)#define 宏名称 宏值作为一种建议和一种广大程序员共同的习惯,宏名称经常使用全部大写的字母。

相关学习推荐:php编程(视频)

1)让代码更简洁明了当然,这有赖于你为宏取一个适当的名字。一般来说,宏的名字更要注重有明确直观的意义,有时宁可让它长点。对宏的处理,在编译过程中称为“预处理”。也就是说在正式编译前,编译器必须先将代码出现的宏,用其相应的宏值替换,这个过程有点你我在文字处理软件中的查找替换。所以在代码中使用宏表达常数,归根结底还是使用了立即数,并没有明确指定这个量的类型。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的朋友有帮助。

(2)constconst是一个定义常量的关键字,类似于C中的#define,能够定义一个常量,如果在程序中改变了它的值,那么会出现错误。举例说明上面的代码:

代码如下:

<?php  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(). "<br>\n" ); //使用直接输入类名来访问静态方法Counter::getCount  //打印类的版本  print( "Version useed: " .Counter::VERSION. "<br>\n" );  ?>

相关推荐:编程视频课程

以上就是直击php中static,const与define的使用区别的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: define
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:php array_combine()函数实例详解

相关资讯