摘要:/* * 类的继承使用extends关键字,子类可以继承父类的所有方法和属性,除了private私有的 * 范围解析符::的使用,它可以由self,parent,static三个关键字引用 * * static关键字使用场景 * 1.定义和访问静态成员 * 2.访问类常量 &n
/*
* 类的继承使用extends关键字,子类可以继承父类的所有方法和属性,除了private私有的
* 范围解析符::的使用,它可以由self,parent,static三个关键字引用
*
* static关键字使用场景
* 1.定义和访问静态成员
* 2.访问类常量
* 3.后期静态绑定,也叫延迟静态绑定
*
* 在静态继承的上下文当中,static可以动态成为属性和方法的调用者(主体),static在运行期内绑定调用者
*
* 属性和方法的重载
*
* 属性的重载有4个魔术方法 __get() __set() __isset() __unset()
* 方法的重载有2个魔术方法 __call() __callStatic()
*
* 方法的重载可以实现夸类调用
* */
//方法重载夸类调用案例
class Car
{
public function intro()
{
echo '我是一辆宝马';
}
public function show()
{
$brand = func_get_arg(0);
$xinghao = func_get_arg(1);
return 'Car::show(),'.'品牌'.$brand.',型号'.$xinghao;
}
public static function showStatic()
{
$brand = func_get_arg(0);
$xinghao = func_get_arg(1);
return 'Car::showStatic(),'.'品牌'.$brand.',型号'.$xinghao;
}
}
class BMW
{
public function __call($method,$args)
{
return call_user_func_array([(new Car()),$method],$args);
}
public function __callStatic($method,$args)
{
return call_user_func_array(['Car',$method],$args);
}
}
$bm = new BMW();
echo $bm->show('宝马','XS5系列');
echo '<hr>';
echo $bm->showStatic('QQ','9S系列');
批改老师:韦小宝批改时间:2018-12-19 09:09:21
老师总结:写的很不错!这些知识点在以后的开发中是经常使用的!课后还要记得多练习啊!