PHP类基础(9)之self/parent/static

  1. self::与当前类静态绑定
  2. parent::与父类进行静态绑定
  3. static::与调用类进行绑定
  4. static与self,parent是不一样的,它对应的类是动态设置的,由调用类决定,如果说self和parent是静态绑定到类的话,static就是动态绑定到类,叫做:静态延迟绑定(后期静态绑定)
  5. 静态绑定(self/parsent)它们与类的绑定是在代码的编译阶段进行,而static与类的绑定是在代码运行时才进行绑定,所以叫做:静态延迟绑定(与类绑定的时机不同)
<?php 
class Demo1{
	public static $name = 'peter';
	public static $salary = 3000;
	public static function show(){
		//self::与Demo1类静态绑定
		// return self::$name;//访问本类中的静态属性self::就是当前类
		return static::$name;//访问本类中的静态属性static::就是当前类
		//通过static来实现通过父类访问字类的属性
		// return static::$sex; //和echo Demo2::show()配合使用
		// static与self,parent是不一样的,它对应的类是动态设置的,由调用类决定,如果说self和parent是静态绑定到类的话,static就是动态绑定到类,叫做:静态延迟绑定(后期静态绑定)
		// 静态绑定(self/parsent)它们与类的绑定是在代码的编译阶段进行,而static与类的绑定是在代码运行时才进行绑定,所以叫做:静态延迟绑定(与类绑定的时机不同)
	}
}
class Demo2 extends Demo1
{
	public static $sex = 'male';
	public static function display(){
		//parent::与父类进行静态绑定  self::与Demo2类进行静态绑定
		//return parent::$name.'的工资是:'.parent::$salary.'性别是'.self::$sex;
		//static::与Demo2类静态绑定
		return parent::$name.'的工资是:'.parent::$salary.'性别是'.static::$sex;
	}
}
echo '姓名是:'.Demo1::$name;//在外部访问类中的静态属性
echo '<hr>';
echo '姓名是:'.Demo1::show();//在外部访问类中的静态属性
echo '<hr>';
echo Demo2::display();
// echo Demo2::show();//通过子类调用父类方法来调用子类的静态属性

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anansec

打赏是我创作路上的加油剂!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值