PHP静态方法与非静态方法用法及区别

  

1,用静态关键字来修饰类的属性,方法,称这些属性,方法为静态属性,静态方法;
静态关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法“。静态类不是不可以实例化,而是不需要实例化就可以用。

  

2,设计静态方法的目的是为了不用实例化对象直接用类名快速调用。

  

3,静态的属性和方法,只能访问静态的属性和方法,<强>不能类访问非静态的属性和方法强。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用。

  

, <强>非静态方法可以访问类中的任何成员(包括静态)强,变量名| |方法名前面<强>不需要加上<强> 强美元。访问静态属性和方法,使用<强>::方法| |属性,

  

5,静态的内部只能出现静态变量和其他静态方法(即静态方法不能调用非静态属性。也不能使用self::调用非静态属性),而且静态方法中还不能使用这等关键字,因为它是属于整个类。静态方法内部调用其他静态方法,可以使用<强>::方法名称强劲的形式来实现,使用<强>::静态变量名访问当前类的静态成员,变量名前面<强>需要加上<强> 强劲,美元方法名前面<强>不需要加上<强> 强美元。

  

6,静态方法中,美元这个伪变量不允许使用,可以使用自我,父母在内部调用静态方法与属性。

  

7中,一个类的所有实例,共用类中的静态属性。也就是这个属性对于这个类来说是唯一的,不管实例化了多少个对象,只要它引用了一个静态对象,那么这些对象引用出来的值肯定是同一个。

  
 <代码>类用户{
  私有静态$ count=0;
  
  公共函数__construct () {
  自我:计数+=1美元;
  }
  公共函数getCount () {
  返回self:: $计数;
  }
  
  }
  $ user1=新用户();
  $ user2=新用户();
  $ user3=新用户();
  echo $ user1→getCount ();//3  
  

8日声明定义一个静态函数很简单,它只需要在函数前面加一个静态的关键字就可以了。
调用静态方法可以使用“类名::静态函数名”的格式去调用,也可以直接实例化一个变量,然后使用变量名→函数名的方法调用。
由于静态方法不需要类的实例化就能够被调用,而普通方法和普通属性都必须先声明一个对象才可以访问,因此,在静态方法里面始终是不能使用普通方法和访问普通变量的。
关于静态方法要牢牢记住一点:“静态方法是属于整个类的。”

  
 <代码>类明星{
  公共静态函数getName () {
  返回的队员姓名”。美元名称;
  }
  }
  回声明星:getName(“凯特”);//队员姓名凯特
  $ *=new star ();
  echo $明星→getName(“吉姆”);//队员姓名吉姆 

PHP静态方法与非静态方法用法及区别