php中的const和static

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则像静态资源,可以被访问并修改

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

时间: 2024-10-09 03:09:41

php中的const和static的相关文章

Objective-C中的const ,extern,static

一.const 1>对于const,记住关键的一点,它只是修饰右边的变量. 例如: - (void)viewDidLoad { [super viewDidLoad]; // const两种用法 // const:修饰基本变量p // 这两种写法是一样的,const只修饰右边的基本变量b const int b = 20; // b:只读变量 int const b = 20; // b:只读变量 // const修饰指针变量访问的内存空间,修饰的是右边*p1, // 两种方式一样 const

C/C++中的const ,static

一.const 在C++中: 1.常对象:创建对象时添加const关键字,这个对象就不可以再修改,就有了常属性,就意味着整个对象所有变量不能更改 2.常对象不能调用普通函数,调用成员函数就相当于把对象的this指针给了他,就有被修改的风险 3.常对象只能调用常函数(函数体前加关键字叫常函数),普通对象也能调用常函数,常函数就相当于对this指针添加了const属性 4.常函数与普通函数可以构成重载,不会冲突 5.如果有成员确实需要修改,他又被const修饰,可以对成员添加一个关键字mutable

转 C# const readonly static 比较

[csharp] view plaincopy C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景. 工作原理 readonly为运行时常量,程序运行时进行赋值,赋值完成后便无法更改,因此也有人称其为只读变量. const为编译时常量,程序编译时将对常量值进行解析,并将所有常量引用替换为相应值. 下面声明两个常量: public static readonly int A = 2; //A为运行时常量 p

C++ 中 const 和 static 的作用

目录 const 的主要应用如下: const 关键字使用的注意点: C++中static关键字有三个明显的作用: const的主要应用如下: const 用于定义常量:const定义的常量编译器可以对其进行数据静态类型的安全检查. const 修饰函数形式参数:当输入参数为用户自定义类型和抽象数据类型的时候,将"值传递"改为"const 引用传递" 可以提高效率. const 修饰函数的返回值:如果给"指针传递"的函数返回值加const,则返回

php中const和static的区别和联系

1.const是类中的常量,类外用define来定义常量2.const只可以修饰类的属性,不能修饰类的方法,static可以修饰属性,也可以修饰方法3.const和static都属于类本身,而不属于new后的类实例.类内访问使用self::,类外使用类名::来访问;类内的$this指代类实例本身,const和static属于类本身,所以无法用$this访问4.self::NAME指代const,self::$name指代static;const是常量,是不需要变量符号的.static修饰的变量,

php类中的$this,static,const,self这几个关键字使用方法

本篇文章主要分享一下关于php类中的$this,static,final,const,self这几个关键字使用方法 $this $this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式.常见用法如:$this->属性,$this->方法 <?php /** * 有关人类 */ class Person { private $name='张三'; public $sex; public funct

php面向对象类中的$this,static,final,const,self这几个关键字使用方法。

php中this,self,parent三个关键字的作用 this,self,parent三个关键字之间的区别,从字面上比较好理解,分别是指这.自己.父亲.我们先建立几个概念,这三个关键字分别是用在什么 地方呢?我们初步解释一下,this是指向当前对象的指针(姑且用C里面的指针来看吧),self是指向当前类的指针,parent是指向父类的指针.我 们这里频繁使用指针来描述,可能是因为没有更好的语言来表达. <?php <span style="color:#ff0000;"

C语言中关键字auto、static、register、const、volatile、extern的作用

原文:C语言中关键字auto.static.register.const.volatile.extern的作用 关键字auto.static.register.const.volatile.extern 这些关键词都是c++基础知识,我整理了一下,希望对新学的朋友们有用: (1)auto 这个这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是auto的. (2)reg

c#中const、static、readonly的区别

1. const与readonly const ,其修饰的字段只能在自身声明时初始化. Readonly 是只读变量,属于运行时变量,可以在类初始化的时候改变它的值.该类型的字段,可以在声明或构造函数中初始化. 因此,根据所使用的构造函数,readonly 字段可能具有不同的值. const只能在初期就使用常量初始化好.对于每一次编译后的结果,const的值是固定的,而readonly的值是可以在运行的时候才确定值的. 2. const 与 static static 定义的是静态变量.可以在外