码迷,mamicode.com
首页 > Web开发 > 详细

php面向对象

时间:2016-12-13 07:30:09      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:命名空间   call   资源释放   gis   方式   unset   参数   情况   删除   

一、编程思想

1.面向过程

概括起来就是“自顶向下,逐步细化”,把一个复杂的问题分解成简单的问题一步一步做出来

2.面向对象

所谓的面向对象,就是在编程的时候尽可能的模拟现实世界!

第一步:分析哪些动作是由哪些实体发出的

第二步:定义这些实体,为其增加相应的属性和功能

第三步:让实体去执行相应的功能或动作

3.面向过程与面向对象的对比

1,  都可以实现代码重用和模块化编程,面向对象的模块化更深,不仅仅是简单的将功能进行封装(封装成函数),更是对调用该功能的主体进行封装,实现某个主体具有个功能,在使用的过程中,先得到相应的主体,再使主体去实现相关的功能

2,  面向对象的数据更封闭,也更安全

3,  面向对象的思维方式更贴近现实生活,更容易解决大型的复杂的业务逻辑

4,  从前期开发角度来看,面向对象要比面向过程更复杂,但是从维护和扩展的功能来看,面向对象要远比面向过程简单

4.$this关键字

代表当前对象,谁调用就代表谁

二、魔术方法

__cosntruct  创建对象时自动调用的构造方法

__destruct   删除对象时自动调用的析构方法,比如删除对象时,可以把调用的资源释放

__clone    克隆一个对象时自动调用,可以写一些代码来区分克隆对象

__sleep   当序列化一个对象时自动调用,一般返回一个需要序列化的属性的数组

__wakeup  当反序列化一个对象时调用,一般要在里面写上初始化代码(一般为不能序列化的资源类型)

__get($name)  获得不可访问的属性的值的时候

__set($name,$value)  为不可访问的属性赋值的时候     

__unset($name)  删除不可访问的属性的时候

__isset($name)  判断不可访问的属性是否存在的时候

__call($name,$arr)$name为方法名,$arr为参数列表,   当调用一个不可访问的非静态方法(对象方法)的时候,会自动执行该魔术方法,这里的不可访问分为不存在或者没有访问权限两种情况

__callstatic($name,$arr)$name为方法名,$arr为参数列表, 当调用一个不可访问的静态方法(对象方法)的时候,会自动执行该魔术方法,,这里的不可访问分为不存在或者没有访问权限两种情况

 

__autoload不算是魔术方法,可以叫作魔术函数!一般注册自动加载方法使用spl_autoload_register($name),$name为方法名。把对象里的非静态方法注册使用spl_autoload_register(array($obj,$name)),$obj为对象名,$name为方法名

把对象里的静态方法注册使用spl_autoload_register(array($class,$name)),$class为类名,$name为方法名,还有一个简单方法spl_autoload_register(“类名::静态方法名”);

__invoke()   当把对象当做一个函数或方法来调用的时候,会自动执行该魔术方法!括号里面可以传递参数

 __toString()  将一个对象当做一个字符串来使用的时候,会自动触发该方法!

三、魔术常量

__DIR__   返回当前根目录路径

__FILE__  返回当前文件路径

__LINE__  返回当前行数

__FUNCTION__ : 返回当前函数的名字

__CLASS__   返回代表当前类名

__METHOD__  返回当前的方法名!

__NAMESPACE__:代表当前命名空间名!

 

php面向对象

标签:命名空间   call   资源释放   gis   方式   unset   参数   情况   删除   

原文地址:http://www.cnblogs.com/zxz1987/p/6166489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!