1-6(OOP)PHP范围解析操作符(::)、静态成员

范围解析操作符或者更简单地说是一对冒号‘::’

作用:用于访问 静态成员、类常量、访问被覆盖类中的方法

 

类外部:类名::常量名、静态成员

类内部:self::常量名、静态成员     parent::常量名、静态成员、覆盖类中方法 

 

静态成员

在声明成员的时候只需要在其可见性前或者后加上 static 则该成员就是静态成员 

可见性 static 变量名[=值]; 

可见性 static function 方法名(...){    }


将变量声明为静态的作用:

1. 类的静态成员和函数里的静态变量相似

2. 静态变量不能被通过对象访问到, 直到通过类名称(在类内部通过 self 等)和范围解析操作符来访问

3. 既然不能通过类访问那么它就和该类的所有实例没有关系了

那到底有啥用呢? 

<?php
class Test{
	public static $counter=0;
	function _construct(){
		self::$counter++;
	}
}

new Test();
new Test();
new Test();
echo '<p>'.Test::$counter.'</p>';
new Test();
echo '<p>'.Test::$counter.'</p>';

 

将方法声明为静态方法的作用:

不通过实例化即可访问这些方法,当然通过实例化的对象也能访问

由于静态方法不需要通过对象即可调用,所以 $this 在静态方法中不可用。
 

1. 声明类属性或方法为静态,就可以不实例化类而直接访问、共享其值。

2. 静态属性不可以由类的实例通过 -> 操作符来访问(但静态方法可以)。

3. 静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值