《PHP应用:PHP类相关知识点实例总结》要点:
本文介绍了PHP应用:PHP类相关知识点实例总结,希望对您有用。如果有疑问,可以联系我们。
PHP教程本文实例总结了PHP类相关知识点.分享给大家供大家参考,具体如下:
PHP教程最终类与最终方法
PHP教程如果父类中的方法被声明为 final,则子类无法覆盖该方法.如果一个类被声明为 final,则不能被继承.
PHP教程
final class a{}
class a{
final public function A(){}
}
PHP教程抽象类与抽象方法
PHP教程
abstract class a {
public abstract function func();
}
class A extends a{
public function func(){}
}
PHP教程① 一个类可以使用abstract声明为抽象类;抽象类是不能实例化的类,只用作其他类的父类.
PHP教程
abstract class name{}
PHP教程② 一个方法可以使用abstract声明为抽象方法;抽象方法只需要声明方法头,不需要大括号部分的方法体.
PHP教程
abstract public function name($val);
PHP教程③ 一个类中有抽象方法,则该类必须声明为抽象类.
PHP教程④ 子类继承自一个抽象类,则子类不行实现父类中的所有抽象方法,除非子类也继续作为抽象类.
PHP教程⑤ 子类实现抽象父类的方法时,访问控制符范围不能降低,且方法的参数也必须一致(重写).
PHP教程接口
PHP教程接口可以看作是抽象类的更高层面的抽象,可以说是抽象类的特例
PHP教程
interface a{
function func();
}
class A implements a {
function func(){}
}
PHP教程类:属性、类常量、方法
PHP教程抽象类:属性、类常量、抽象方法
PHP教程接口:接口常量、抽象方法
PHP教程① 相比抽象类,接口可实现‘多继承'
PHP教程
class A implements a,b,c{}
PHP教程② 一个接口只能继承一个接口
PHP教程
interface a extends b{}
PHP教程③ 其中方法都是抽象方法不用abstract修饰,即下级类要么实现接口的方法(implements),要么也声明为抽象方法
PHP教程重载技术
PHP教程1. 属性重载:如果使用一个不存在的属性,就会调用类中预先定义好的某个方法以处理数据;
PHP教程对于属性不用的应用场景,做如下处理
PHP教程① 取值:自动调用类中的__get()
② 赋值:自动调用类中的__set()
③ 判断是否存在:自动调用类中的__isset()
④ 销毁:自动调用类中的__unset()
PHP教程前提是预先定义好这些方法,否则会报错
PHP教程
<?php
class bee{
public $ol = array();
public function __get($key){
if(isset($this->ol[$key])){
return $this->ol[$key];
}
return $key.' not exists';
}
public function __set($key,$val){
$this->ol[$key] = $val;
}
public function __isset($key){
if(isset($this->ol[$key])){
return true;
}
return false;
}
public function __unset($key){
unset($this->ol[$key]);
}
}
$obj = new bee();
echo $obj->one;
echo '<br>';
$obj->one = 1;
echo $obj->one;
echo '<br>';
var_dump(isset($obj->one));
PHP教程运行结果如下:
PHP教程
one not exists
1
boolean true
PHP教程2. 方法重载:如果使用一个不存在的方法,就会调用类中预先定义好的某个方法以处理该行为;
PHP教程对于方法不用的应用场景,做如下处理
PHP教程① 在对象中调用不可访问的方法:__call()
② 静态方式中调用不可访问方法:__callStatic()
PHP教程
<?php
class bee{
public function __call($name,$arr){
echo '<br>';
echo 'function '.$name.' not exist';
}
static function __callStatic($name,$arr){
echo '<br>';
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 '<br>';
echo 'no.0';
}
function func_one($val){
echo '<br>';
echo 'no.'.$val;
}*/
PHP教程运行结果如下:
PHP教程
function func not exist
function staFunc not exist
PHP教程注意:以上方法都属于魔术方法,都带有参数
PHP教程更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
PHP教程希望本文所述对大家PHP程序设计有所帮助.
转载请注明本页网址:
http://www.vephp.com/jiaocheng/3180.html