码迷,mamicode.com
首页 > Web开发 > 详细

php中的const和static

时间:2019-12-17 18:35:32      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:inf   width   his   标识符   理解   通过   创建   const   静态方法   

1.const是类中的常量,类外用define定义常量

(var用来定义类内的变量,有添加控制访问限制的修饰符则可以省略 eq:public protected)

技术图片

技术图片

类外:

技术图片

类外的常量属于全局,任何位置都可以访问,任意函数内部都可以访问外部定义的常量,而且常量一被定义就不可修改或者撤销

类内:

技术图片

类内的常量属于当前这个类,不属于类的实例对象,因此不能通过$this->访问,同样的常量一被定义就不能修改或者撤销。

类内可以通过 self:: 来访问常量,类外则通过 类名:: 访问

技术图片

2.const只可以修饰类的属性,不能修饰类的方法,static可以修饰属性,也可以修饰方法


3.const和static都属于类本身,而不属于new后的类实例,类内访问使用self::,类外使用类名::来访问;类内的$this指代类实例本身,const和static是属于类本身,所以无法用$this访问

技术图片

4.self::NAME指代const,self::$name指代static;const是常量,是不需要变量符号的,static修饰变量,需要变量符


5.const一旦被定义不可更改,static修饰的变量可以更改


6.static方法中不能使用类的普通成员和方法,这很好理解,调用静态方法时,不能确定类有没有被实例化。普通方法中可以使用static属性和static方法


7.函数内部定义的static和类中定义的static一样都是作为自身的局部变量使用,每次调用函数用的都会是同一个static变量而不会重新创建新的变量。而类中的static变量只能通过类本身去调用,每次调用的也同样是同一个static变量

技术图片

总结:const不会被modify,也不会被copy,static可以被modify,但不会被copy。const更像是个标识符,而static则像静态资源,可以被访问并修改

php中的const和static

标签:inf   width   his   标识符   理解   通过   创建   const   静态方法   

原文地址:https://www.cnblogs.com/chujunqiao/p/12055763.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!