静态绑定 把self 修改成 static

原创 2019-01-24 14:40:11 347
摘要:<?php //后期静态绑定(延迟静态绑定)用在静态继承的环境中 //动态匹配静态成员的调用者,而不是声明者 //在运行阶段确定 //定义一个父类 class Father { //静态属性 public static $money = 5000; //静态方法 public static function&n
<?php
//后期静态绑定(延迟静态绑定)用在静态继承的环境中
//动态匹配静态成员的调用者,而不是声明者
//在运行阶段确定

//定义一个父类
class Father
{
	//静态属性
	public static $money = 5000;

	//静态方法
	public static function getClass()
	{
		//返回当前类名
		return __CLASS__;
	}

	//静态方法
	public static function getMoney()
	{
		//当前类的属性和值
		// return self::getClass() . '=>' . self::$money;
		//静态绑定  把self 修改成 static ,self是写死的
		return static::getClass() . '=>' . static::$money;
	}
}

//定义子类,继承Father
class Son extends Father
{
	//覆写父类的静态属性
	public static $money = 3000;

	//覆写静态方法
	public static function getClass()
	{
		//返回当前类名
		return __CLASS__;
	}
}

//调用Fathet中的静态方法,来获取类名
echo Father::getClass(),'<br>';
//父类的钱有5000
echo Father::getMoney(),'<br>';

//调用子类Son中的静态成员 
echo Son::$money,'<br>';
echo Son::getClass(),'<br>';
echo '<hr>';
//子类中调用父类的方法getMoney(),显示还是父类的值
echo Son::getMoney(),'<br>';
//如何实现?静态绑定  把self 修改成 static

请老师审核,谢谢!

批改老师:西门大官人批改时间:2019-01-24 15:14:50
老师总结:static 主要用在静态继承的上下文环境中, 用于在方法调用 时, 动态设置调用者, 在框架中使用比较多

发布手记

热门词条