返回后期静态绑定技......登陆

后期静态绑定技术动态设置静态成员的调用者

在乎山水2019-02-22 11:21:15264
<?php
//后期静态绑定
//使用在静态继承的上下文环境中
//动态匹配静态成员的刁雍者,而不是声明者
//静态方法与调用者的绑定在运行阶段才可以确定

class Father
{
	public static $money=5000;
	public static function getClass(){
		//返回当前类名
		return _CLASS_;
	}
	public static function getMoney(){
		//return self::getClass() .'=>' .self::$money;
		//使用在静态继承的上下文环境中,动态设置静态成员的调用者  (Son),允许子类的成员覆盖父类的相同成员
		return static::getClass() .'=>' .static::$money;
	}
}
class Son extends Father
{
	//覆写父类的静态属性
	public static $money=3000;
	public static function getClass(){
		//返回当前类名
		return _CLASS_;
	}
	
}
echo Father::getClass(),'<br/>';
echo Father::getMoney(),'<br/>';

//调用子类
echo Son::$money,'<br/>';
echo Son::getClass(),'<br/>';
echo '<hr/>';
//值还是父类的值,而不是自己重写的值
//目的:展示自己覆写的值,这时需要把getMoney()里面的self改成static,动态设置静态成员的调用者
echo Son::getMoney(),'<br/>';

?>


最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送