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");
      ... ...

    

 

posted @ 2018-06-07 17:33  雨墨安然  阅读(105)  评论(0编辑  收藏  举报