instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例:

1 对类利用 instanceof 其格式:工具 instanceof 类

<?phpclass MyClass{}class NotMyClass{}$a = new MyClass ;var_dump ( $a instanceof MyClass );var_dump ( $a instanceof NotMyClass );?>

以上例程会输出:bool(true)bool(false)

instanceof也可用来确定一个变量是不是继续自某一父类的子类的实例:

php的instanceofPHP instanceof用法 Angular

2 对继续类利用 instanceof

<?phpclass ParentClass{}class MyClass extends ParentClass{}$a = new MyClass ;var_dump ( $a instanceof MyClass );var_dump ( $a instanceof ParentClass );?>

以上例程会输出:bool(true)bool(true)

instanceof也可用于确定一个变量是不是实现了某个接口的工具的实例:

3 对接口利用 instanceof

<?phpinterface MyInterface{}class MyClass implements MyInterface{}$a = new MyClass ;var_dump ( $a instanceof MyClass );var_dump ( $a instanceof MyInterface );?>

以上例程会输出:bool(true)bool(true)

与类有关的系统函数:

class_exists(): 判断一个类是否存在(便是是否定义过了)

bool class_exists ( string $class_name [, bool $autoload = true ] )

get_class_methods():得到一个类中所定义的所有方法。
是一个序列方法名(数组)

array get_class_methods ( mixed $class_name )

get_declared_classes():得到所有已经定义过的"类名"(包括系统中的类), 也是一个序列名(数组)

array get_declared_classes ( void )

与工具有关的系统函数:

is_object(): 判断是否是一个"工具"

bool is_object ( mixed $var )

get_object_vars():得到一个工具中所具有的属性。
是一个序列名称(数组)

array get_object_vars ( object $obj )

get_class(): 得到一个工具的"所属类"(结果是一个类名字符串)

string get_class ([ object $obj ] )

get_parent_class(): 得到一个工具的"所属父类"(结果是一个类名字符串)

string get_parent_class ([ mixed $obj ] )

与接口有关的函数

interface_exists(): 判断一个接口是否存在(便是是否定义过了)

bool interface_exists ( string $interface_name [, bool $autoload = true ] )