本文实例总结了PHP类相关知识点。分享给大家供大家参考,具体如下:
最终类与最终方法
如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
抽象类与抽象方法
父类。
方法可以使用abstract声明为抽象方法;抽象方法只需要声明方法头,不需要大括号部分的方法体。
方法,则该类必须声明为抽象类。
父类中的所有抽象方法,除非子类也继续作为抽象类。
父类的方法时,访问控制符范围不能降低,且方法的参数也必须一致(重写)。
接口
接口可以看作是抽象类的更高层面的抽象,可以说是抽象类的特例
接口:接口常量、抽象方法
方法都是抽象方法不用abstract修饰,即下级类要么实现接口的方法(implements),要么也声明为抽象方法 属性重载:如果使用一个不存在的属性,就会调用类中预先定义好的某个方法以处理数据; 对于属性不用的应用场景,做如下处理 ① 取值:自动调用类中的__get()
② 赋值:自动调用类中的__set()
③ 判断是否存在:自动调用类中的__isset()
④ 销毁:自动调用类中的__unset() 前提是预先定义好这些方法,否则会报错 运行结果如下: 方法重载:如果使用一个不存在的方法,就会调用类中预先定义好的某个方法以处理该行为; 对于方法不用的应用场景,做如下处理 ① 在对象中调用不可访问的方法:__call()
② 静态方式中调用不可访问方法:__callStatic() 运行结果如下: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》 希望本文所述对大家PHP程序设计有所帮助。重载技术
';
$obj->one = 1;
echo $obj->one;
echo '
';
var_dump(isset($obj->one));
';
echo 'function '.$name.' not exist';
}
static function __callStatic($name,$arr){
echo '
';
echo 'function '.$name.' not exist';
}
/*public function __call($name,$arr){
$num = count($arr);
if($num<1){
$name();
}else{
$name = $name.'_one';
$name($arr[0]);
}
}*/
}
$obj->func();
bee::staFunc();
/*$obj->func(1);
function func(){
echo '
';
echo 'no.0';
}
function func_one($val){
echo '
';
echo 'no.'.$val;
}*/