php静态类方法和函数的区别,PHP静态方法与非静态方法用法及区别

1、用static关键字来修饰类的属性、方法,称这些属性、方法为静态属性、静态方法;

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

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

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

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

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

6、静态方法中,$this伪变量不允许使用,可以使用self,parent在内部调用静态方法与属性。

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

class User{

private static $count = 0;

public function __construct(){

self::$count +=1;

}

public function getCount(){

return self::$count;

}

}

$user1 = new User();

$user2 = new User();

$user3 = new User();

echo $user1->getCount(); //3

8、声明定义一个静态函数很简单,它只需要在function前面加一个static关键字就可以了。

调用静态方法可以使用 “类名::静态函数名”的格式去调用,也可以直接实例化一个变量,然后使用变量名->函数名的方法调用。

由于静态方法不需要类的实例化就能够被调用,而普通方法和普通属性都必须先声明一个对象才可以访问,因此,在静态方法里面始终是不能使用普通方法和访问普通变量的。

关于静态方法要牢牢记住一点:“静态方法是属于整个类的。”

class Star{

public static function getName($name){

return '队员姓名'.$name;

}

}

echo Star::getName('kate'); //队员姓名kate

$star = new Star();

echo $star->getName('jim'); //队员姓名jim

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值