摘要: 接口是对多重继承的一种变相实现, Traits可以被视为一种加强型的接口.先来看如下代码trait Hello{ private $name = 'chenqionghe'; public function sayHello() { echo 'hello '; ... 阅读全文
posted @ 2015-08-17 09:50 雪山飞猪 阅读(296) 评论(0) 推荐(0)
摘要: 其中就有一个SPL(标准PHP库)的尝试,SPL中实现一些接口,其中最主要的就是Iterator迭代器接口,通过实现这个接口,就能使对象能够用于foreach结构,从而在使用形式上比较统一.比如SPL中有一个DirectoryIterator类,这个类在继承SplFileInfo类的同时,实现Ite... 阅读全文
posted @ 2015-08-17 09:49 雪山飞猪 阅读(250) 评论(0) 推荐(0)
摘要: 多态的确切含义是: 同一类对象收到相同消息时,会得到不同的结果。而这个消息是不可预测的。多态,顾名思义,就是多种状态,多种结果。以java为例,由于java是强类型语言,因此变量和函数返回值是有状态的。比如,实现一个add函数的功能,其参数可能是两个int型整数,也可能是两个float型浮点数,而返... 阅读全文
posted @ 2015-08-17 09:47 雪山飞猪 阅读(446) 评论(0) 推荐(0)
摘要: 面向对象的优势在于类的复用.继承与多态都是对类进行复用,它们是一个类级别的复用,一个是方法级别的复用.提到继承必提组合,二者有何异同?PHP到底有没有多态?若没有,则为什么没有?有的话,和其他语言中的多态又有什么区别?继承和组合都是提高代码可重用性的手段.在设计模型时,可以按照语言识别类之间的组合关... 阅读全文
posted @ 2015-08-17 09:43 雪山飞猪 阅读(217) 评论(0) 推荐(0)
摘要: 如何防止调用不存在的方法而出错,使用__call魔术重载方法.__call方法原型如下:mixed __call(string $name,array $arguments)当调用一个不可访问的方法(如未定义,或者不可见时), __call()就会被调用.其中$name参数是要调用的方法名称.$ar... 阅读全文
posted @ 2015-08-17 09:40 雪山飞猪 阅读(2648) 评论(0) 推荐(0)
摘要: 当调用或者设置类不存在的方法时,_会调用_set和__get方法以下是示例值为'.$value.''; $this->$name = $value; } public function __get($name) { if(!isset($this->$n... 阅读全文
posted @ 2015-08-17 09:39 雪山飞猪 阅读(611) 评论(0) 推荐(0)
摘要: PHP中的面向对象先看PHP源码中对变量的定义#zend/zend.htypedef union_zvalue_value{ long lval;/* long value */ double dval;/* double value */ struct { c... 阅读全文
posted @ 2015-08-17 09:38 雪山飞猪 阅读(550) 评论(0) 推荐(0)