PHP静态方法与非静态方法的区别

来源:互联网 发布:qq飞车数据异常 编辑:程序博客网 时间:2024/05/16 08:53

PHP静态方法与非静态方法的区别

php编程中,static关键字声明一个属性或方法是和一个类相关的,而不是和类的某个特定的实例相关的,因此这类属性或方法也称为“类属性”或“类方法”

  • 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。
  • static关键字可以用来修饰变量、方法。
  • 不经过实例化,就可以直接访问类中static的属性和static的方法。
  • static 的属性和方法,只能访问static的属性和方法,不能类访问非静态的属性和方法。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。
  • static的属性,在内存中只有一份,为所有的实例共用。
  • 使用self:: 关键字访问当前类的静态成员。

一、一个类的所有实例,共用类中的静态属性。

即在内存中即使有多个实例,静态的属性也只有一份。

二、静态属性直接调用

静态属性不需要实例化就可以直接使用,在类还没有创建时就可以直接使用。
使用方式:
类名:: 静态属性名

  • 类没有创建,静态属性就可以直接使用。

  • 静态属性和方法,在类被调用时创建。

三、静态方法

静态方法不需要所在类被实例化就可以直接使用。
使用的方式是类名::静态方法名

一个静态方法调用其它静态方法时,使用self:: ,使用self::调用本类的静态属性

注意

1. 静态方法不能调用非静态属性 。不能使用self::调用非静态属性。 2. 也不能使用 $this 获取非静态属性的值3. 在静态方法中不能使用 $this 标识调用非静态方法。4. 当一个类中有非静态方法被self:: 调用时,系统会自动将这个方法转换为静态方法。

原创粉丝点击