面向对象的静态属性和静态方法

一,静态属性

静态属性时该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量

定义静态属性:访问修饰符 static 静态属性名

静态属性的访问:

1.在类的内部

self::静态属性名

类名::静态属性名

2.类的外部

如果要在类的外部访问静态属性,静态属性需要时public,否则不能直接访问

访问形式是: 类名::静态属性名

$this和self的区别

1.使用的方式不同

$this->

self::

2.self是类范畴(指向类),$this是对象实例(指向对象实例)

静态属性的使用注意事项

1.如果在类的内部使用静态属性,有两种形式:self::静态属性名   类名::静态属性名

2.在类的外部访问静态属性  类名::静态属性名  要求静态属性是public

3.静态属性在定义时,可以直接初始化(赋值)

二.静态方法

静态方法是专门用来操作静态属性的

写法:访问修饰符  static  function 函数名(形参){}

1,在类外部调用静态方法有以下几种形式

类名::静态方法名

对象名->静态方法名

对象名::静态方法名(不推荐使用)

2.在类的内部调用静态方法

self::方法名

类名::方法名(不推荐使用,因为当你的类名发生改变时,这里也要发生修改)

$this->方法名(不推荐使用)

3.静态方法只能访问静态属性

4.普通的成员方法可以访问静态属性

5.如果静态方法时protected或private则不能在类外部使用

猜你喜欢

转载自www.cnblogs.com/wfc139/p/9155710.html