PHP面向对象

来源:互联网 发布:音乐管理系统数据库 编辑:程序博客网 时间:2024/06/05 14:34
parent关键字

parent关键字允许调用父类操作的最初版本。例如从类B中调用其父类A的话。

parent::operation();operation{echo 类属性}

但是,输出结果可能会与预期向左,这是因为虽然用的是A的方法,但使用的是B继承重载A之后的属性。

 __set与__get方法 

从类外部访问属性是非常恶劣的做法。面向对象鼓励使用封装。

可以通过使用__get和__set来实现对属性的访问。

 例如如下操作。

 class test {       public $attr ;       function __get($name){           return $this->$name;        }        function __set($name,$val){           if($name == 'attr' && $val >0){                $this->attr = $val; }        }}

之后,就可以通过如下方式进行调用

$tc = new test();$tc->$attr="><";

final 关键字

禁止重载和继承


php多重继承的方法

使用接口可以解决php多重继承不能的问题。

一个类可以实现多个接口


延迟静态绑定

父类静态方法访问子类静态变量


clone与类中的__clone

有的时候我们需要在一个项目里面使用两个或多个一样的对象,如果使用 new 关键字重新创建对象,再赋值上相同的属性,这样做比较烦琐而且也容易出错。PHP 提供了对象克隆功能,可以根据一个对象完全克隆出一个一模一样的对象,而且克隆以后,两个对象互不干扰。

如果想在克隆后改变原对象的内容,需要在类中添加一个特殊的 __clone() 方法来重写原本的属性和方法。__clone() 方法只会在对象被克隆的时候自动调用。


__call() 

访问重载


__toString() 

类转化为字符串


autoload方法

autoload机制可以使得PHP程序有可能在使用类时才自动包含类文件,而不是一开始就将所有的类文件include进来,这种机制也称为lazy loading。


iterator

迭代器,自定义迭代过程中需要用到的函数


反射类

该扩展分析php程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。 Reflection可以说是对php库函数:“Classes/Objects 类/对象函数”的一个扩展。 主要用在通过程序检测现有php程序内部关于类、方法等信息,并做出处理。


原创粉丝点击