16/8/21_PHP-有关类函数,this,static,面向对象思想介绍

class_exists():判断某个类是否存在(定义过)

interface_existe():判断接口是否存在

get_class():获取某个对象的"所属类名"

get_parent_class():获取某个对象的"所属父类的类名"

get_class_method():获取一个类的所以方法,返回一个索引数组,就是这些方法的名字。

get_class_vars():获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值。

get_declared_classes():获得所有声明的类(含系统中的类)

is_object():判断是否对象

get_object_vars():获得对象的所有属性,返回一个数组,下标为属性名,值为属性值。


 

instanceof:判断一个对象是否是某个类的"实例"

一个对象如果是下级某个类的“实例”,则其一定也是该类的上级类的“实例”

两个特定语法场景的辨析

对象向下传递特性:

当一个对象($object1)调用一个实例方法,然后,在该方法(A)中又去“静态”调用另一个类的方法(B),则在方法中B中,会自动获得在方法A中的那个this对象。


 

self:代表当前类,指其代码所在的类(静态绑定)

static:也代表“当前类”,调用本方法的类,static这个词有时候跟self代表用一个类,也有时候代表不用的类,

static代表的是调用者(动态绑定),通常认为,这种情形更符合显示的需要,可见self完全可以被static代替使用。

可见static有3个不同含义的语法:

函数中的静态变量:

  function f1(){

    static $var1 = 1;

  }

类中的静态成员:

  class A{

    static $var1 = 1;

    static function f1(){}

  }

方法中的动态指代“当前类”:

  class A{

    function f1(){

      static::f2();//static指代调用f1这个方法的类(或对象的类)

      self::f2()//self这里永远指代当前A这个类

    }

  }

面向对象3大思想特征介绍:

封装:

  就是把数据“封闭”起来,尽量不给别人看到。

  面向对象的基本语法“类的定义”形式,可以认为是最基本封装--封装了很多数据到某个类(对象)。

  但:

  更严格(更常说)的封装,是尽量将属性做出“私有的”--并通过共有的方法向外提供对该属性的“可控性”:

继承:

 

多态:

  通常是指:一个对象可以使用相同的方法(动作)但得到不同的结果:

    (这里是其他常见面向对象语法示例:)

    class A{

      function f1($x){...做事情1;}

      function f1($x,$y){...做事情2;}

      function f2($x,$y,$z){...做事情3;}

    }

  也指:不用的对象使用相同的方法,但得到不同的结果:

posted @ 2016-08-21 11:27  gaara724  阅读(161)  评论(0编辑  收藏  举报