类和对象的系统函数和运算符

有关类和对象的系统函数和运算符

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

interface_exists(), :判断接口是否存在

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

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

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

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

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

is_object():判断是否对象

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

运算符:

new:

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

 

 

 

两个特定语法场景的辨析:

对象向下传递特性;

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

 

 

 

可见f2方法直接调用会产生严重错误(因为找不到$this)

static后期静态绑定特性:

 

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

函数中的静态变量:

function  f1(){

static $v1 = 1;

}

类中的静态成员:

class A{

static  $v1 = 1;

static  function f1(){}

}

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

class A{

function f1(){

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

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

}

}

 

posted @ 2019-05-24 10:27  zsyzsyzsyzsyzsy  阅读(288)  评论(0编辑  收藏  举报