php面向对象(四)
php中的重载技术
通常面向对象语言的重载技术
在一个类中有多个同名方法,每个方法的参数不同,这种现象称为重载。
参数的不同:个数不同,类型不同,顺序不同。
在php中,一个类中不可以定义多个同名方法(这是直接语法错误),因此php重载有特殊的意义;
属性重载:如果使用一个不存在的属性,就会自动去调用预先设计好的某个方法;
取值:$v1 = 对象->属性;======如果不存在======》自动调用类中的__get()方法
赋值:对象->属性=值;======如果不存在========》自动调用类中的__set()方法
判断是否存在:issrt(对象->属性;)==如果不存在=》自动调用类中的__isset()方法
销毁:unset(对象->属性;)======如果不存在===》自动调用类中的__unset()方法
//前提是类中要预先定义好这些
当使用一个对象(类)调用一个不存在的静态方法时,会自动去调用预先定义好的:__callStaric 方法,其中必须。带两个参数。
__get(), __set(), __isset(), __unset(), __call(), __callstatic();这几个方法称为魔术方法。
方法重载:如果使用一个不存在的方法,就会自动调用类中预先定义好的某个方法处理;
接口interface
接口是抽象类的特殊例子:有接口常量,还有抽象方法。
接口中只有最简单的特性信息:接口常量(就是常量),抽象方法(只有方法头,下级去实现)
接口的作用:接口可以看做抽象类的更高层的抽象规范,不考虑接口常量的话,相当于给下级做什么事,怎么做下级自己去完成。
有关类和对象的相关知识
类的自动加载:不需要外部引用类文件,程序在需要一个类的时候自动去动态加载。
使用__autoload魔术函数
当程序需要一个类的时候,就回去调用该函数:该函数我们需要自己定义在其中,写好加载类文件的通用语句。
使用__autoload魔术函数
当程序需要一个类的时候,就回去调用该函数:该函数我们需要自己定义在其中,写好加载类文件的通用语句。
使用sql_autoload_register函数
用这个函数注册(声明)多个可以用来代替_autoload函数作用的函数:
sql_autoload_regist("函数名1");
sql_autoload_regist("函数名2");
... ...