PHP面向对象摘录

一、理解面向对象基础知识

面向对象的优势:

1、具有扩展现有代码的功能

2、允许类型提示,能够对传递给函数的变量进行更加严格的控制

3、允许使用现有的设计模式,可以用来解决常见的软件设计问题并使用调试更加容易

成员变量和成员方法:

public(公有的)表示其修饰的成员可以通过PHP程序全局访问

private(私有的)表示其修饰的成员仅可以被定义它的类访问

protected(受保护的)表示其修饰的成员仅可以被定义它的类及派生类访问 

static(静态的)表示成员不会绑定到类的某一特定的实例,可以被类的任意实例访问

abstract(抽象的)抽象方法标志抽象类,必须定义类的所有子类加以实现

final(终态的)表示其修饰的成员无法在派生类中重新定义,因此它定义的功能无法修改

const(常量)将类内部的变量声明为常量,大写字母表示

魔术方法和常量 :

__CLASS__ :该值总是与定义的该调用函数的类名相同

__FILE__ :指常量所指向文件的文件名称

__LINE__:指输出代码中的位置行

__DIR__ :指文件所在的位置绝对目录

__FUNCTION____METHOD__ :指函数或方法所定义的名称

__NAMESPACE__ :指当前的命名空间

__constructor() :构造函数表示类被实例成对象时所调用的方法 --new关键字

__destructor() :析构函数表示对象被垃圾回收时调用的方法 --null或unset()

__toString() :当对象被当作字符串输出时所调用的方法

__sleep():当对象被序列化时调用的方法 ,它返回一个数组,用来清理用保存的成员变量

__wakeup():当序列化的对象被唤醒时调用的方法 ,用来重新打开句柄

__set():当修改一个不存在的成员变量时调用的方法

__get(): 当调用一个不存在的成员变量时调用的方法

__unset(): 当销毁一个不存在的成员变量时调用的方法

__isset(): 当检测一个不存在的成员变量时调用的 方法

__call():当调用一个不存在的成员函数时调用的 方法

__callStatic():当调用一个不存在的静态方法时调用的 方法

__set_state():用来检查应用程序是否进行多次动态代码求值 var_export()调用时

__clone():当对象被克隆时调用的方法

__invoke():将对象作为函数使用时调用的方法

接口:

interface (接口)的含义

接口是用来定义功能的结构体

接口内的功能必须通过其他类来实现

接口并不会规定某个功能的内部实现,可以把借口看作类需要遵循的模版

接口是定义方法签名和返回值类型,所以类不是继承借口,而是实现接口implements

与类相关的一些关键字和函数:

new:实例化类为一个对象

instanceoof:表示左操作数的类型是右操作数的类型的子类则返回真

get_class():返回实例化对象的类名

serialize() :序列化对象,用来存储应用程序的状态及缓存全部对象

unserialize():反向序列化 将序列化过的对象返回成对象

var_export():输出或返回一个变量的结构信息以字符串表示,即PHP的源代码

 

设计模式:

Singleton(单例):表示类只能实例化一次,生成一个全局状态且单一根对象

Multiton(多例):表示类可以多次实例化,确保同一个对象的多个实例不会发生冲突

Proxy(代理):表示所有的成员方法和变量都来源于目标类,本类应用来记录访问信息

Facade(外观):抽象化复杂的功能,将子系统处理各请求的细节委托成合适的责任

Decorator(装饰者):表示对象实例化后,通过多个装饰者类来扩展实例化对象

Factory(工厂):  对象调用某一条件的方法时,依照判断条件来获取到子类的对象实例 

Observer Pattern(观察者模式):当发布者对象生成事件后,观察者必须掌握广播了它的监听事件的对象

Publisher/subscriber(发布者/订阅者):当应用程序在何时何处触发时,都将订阅事件的通知

Lazy initialization(延迟初始化):表示真正需要该对象时才进行初始化

 

设计模式请看 : PHP设计模式

posted @ 2012-08-06 23:28  linzj  阅读(558)  评论(0编辑  收藏  举报