PHP对象的高级应用

来源:互联网 发布:淘宝立即购买按钮 编辑:程序博客网 时间:2024/04/26 18:47

我是一个初学PHP的菜鸟啊,有什么写的不对的地方还请大家多指教哈!

    今天开始学习的是PHP对象有的高级应用,前两天学习过PHP面向对象的一些基础知识,以及抽象类的应用。

    (1), final关键字:final关键字来修饰类的作用是使类不再具有继承性。不能再派生出新的子类。若该final关键字作用于类中的一个方法,则该方法不能被子类继承。

    (2)抽象类:用关键字abstract修饰,只能用作其他类的基类,本身不能被 实例化。该类同同普通类一样,也可以有成员变量和方法,但至少需包含一个方法,不用有方法体。方法的实现只能在子类中完成。

    (3)接口的使用:由于继承只能为单继承,不能有多继承,这个可以用接口interface来实现.

   

    (4)克隆对象:用关键字clone可以将一个对象$obj1赋给$obj2,$obj2 = clone $obj1。两个对象占用不同的物理空间,如果$obj2 = $obj1,则$obj1,$obj2占用相同的一个物理空间,相当于一个对象对另外一个对象的引用,判断两个对象是引用不是克隆可以用对象比较符==(内容完全相等),===(引用)来得到结果。如果想在被赋值对象$obj2里保留一些不同于赋值对象$obj1的变量,可以__clone()方法。

    (5)对象类型检测instanceof: 可以用instanceof来判断对象$obj是否属于某类或该类的父类,格式如下:

 

    (6)魔术方法:魔术方法即在一般的方法前有标志__,如前面学习过的构造函数__construct(),析构函数__destruct(),克隆函数__clone(), 这里有我们要提到的新的一引起魔术方法:

  1. __get(),__set()方法:当程序试图调用一个不存在的类的成员变量的时候。PHP会执行该方法。
  2. __call()方法:当程序试图调用一个不存在的类的成员函数的时候。PHP会执行该方法。
  3. __sleep(),__wakeup()方法:当调用serialize()将一个对象进行序列化的时候,如果该对象里包含一个__sleep()函数,则会先执行该__sleep()方法。unserialize()函数可以重新一个还原被序列化了的对象,则会调用__wakeup()函数,用来恢复数可能丢失的数据库连接和相关工作 。但有一个疑问的是该类只能有一个变量才能调的通程序,如果有两个及以上变量的时候,程序会提示出错。
  4. __toString()方法:该方法的作用用来可以将一个对象进行输出,如echo $obj,如果类中没有该方法的时候,则这样的代码会报错误。
  5. __autoload()方法:一般写规范程序的时候,一个独立的类会保存在一个php文件中支,如果在一个新的页面要调用其他类的时候,可以用__autoload()和include_once()方法来一次加入多个类文件

    呵呵,新手上路,请多多指教哈!

 

原创粉丝点击