什么时候“ get_class等于”与“ instanceof”不同?

Yah*_*din 1 php

我有一些代码,其中:

get_class($foo) == Bar::class
Run Code Online (Sandbox Code Playgroud)

与以下内容不同:

$foo instanceof Bar::class
Run Code Online (Sandbox Code Playgroud)

可能是什么原因呢?

dec*_*eze 6

如果满足以下条件,则对象是instanceof给定的C

  • 该确切类别的对象 C
  • extendsC的类的对象或其任何子
  • implements给定接口C或其任何子级的类的对象

get_class如果恰好该类,则它只会等于第一种情况,因为它会比较该类的名称,而不是其传统。它不会匹配子类或接口。