class_implements将返回由指定类实现的所有接口的数组。
使用class_implementsover的一个原因instanceof是您可以class_implements 在作为类名的字符串上使用:
<?php
interface HasTest {
public function test();
}
class TestClass implements HasTest {
public function test() {
return 'This is a quick test';
}
}
$test = array (
'test' => 'TestClass'
);
// !! Using instanceof
var_dump($test['test'] instanceof HasTest);
// !! Using class_implements
var_dump(in_array('HasTest', class_implements($test['test'])));
/**
* Output:
*
* bool(false)
* bool(true)
*/
$class = new $test['test'];
var_dump($class instanceof HasTest);
/**
* Output:
* bool(true)
*/