温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP类相关知识点有哪些

发布时间:2021-09-01 09:49:30 来源:亿速云 阅读:176 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关PHP类相关知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

最终类与最终方法

如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。

final class a{} class a{   final public function A(){} }

抽象类与抽象方法

abstract class a {   public abstract function func(); } class A extends a{   public function func(){} }

① 一个类可以使用abstract声明为抽象类;抽象类是不能实例化的类,只用作其他类的父类。

abstract class name{}

② 一个方法可以使用abstract声明为抽象方法;抽象方法只需要声明方法头,不需要大括号部分的方法体。

abstract public function name($val);

③ 一个类中有抽象方法,则该类必须声明为抽象类。

④ 子类继承自一个抽象类,则子类不行实现父类中的所有抽象方法,除非子类也继续作为抽象类。

⑤ 子类实现抽象父类的方法时,访问控制符范围不能降低,且方法的参数也必须一致(重写)。

接口

接口可以看作是抽象类的更高层面的抽象,可以说是抽象类的特例

interface a{   function func(); } class A implements a {   function func(){} }

类:属性、类常量、方法

抽象类:属性、类常量、抽象方法

接口:接口常量、抽象方法

① 相比抽象类,接口可实现‘多继承'

class A implements a,b,c{}

② 一个接口只能继承一个接口

interface a extends b{}

③ 其中方法都是抽象方法不用abstract修饰,即下级类要么实现接口的方法(implements),要么也声明为抽象方法

重载技术

1. 属性重载:如果使用一个不存在的属性,就会调用类中预先定义好的某个方法以处理数据;

对于属性不用的应用场景,做如下处理

① 取值:自动调用类中的__get()
② 赋值:自动调用类中的__set()
③ 判断是否存在:自动调用类中的__isset()
④ 销毁:自动调用类中的__unset()

前提是预先定义好这些方法,否则会报错

<?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));

运行结果如下:

one not exists 1 boolean true

2. 方法重载:如果使用一个不存在的方法,就会调用类中预先定义好的某个方法以处理该行为;

对于方法不用的应用场景,做如下处理

① 在对象中调用不可访问的方法:__call()
② 静态方式中调用不可访问方法:__callStatic()

<?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; }*/

运行结果如下:

function func not exist function staFunc not exist

注意:以上方法都属于魔术方法,都带有参数

感谢各位的阅读!关于“PHP类相关知识点有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI