ReflectionClass::implementsInterface
(PHP 5, PHP 7, PHP 8)
ReflectionClass::implementsInterface — インターフェイスの実装を調べる
説明
インターフェイスを実装しているかどうかを調べます。
パラメータ
interface
-
インターフェイスの名前。
エラー / 例外
ReflectionClass::implementsInterface() は、
interface
がインターフェイスでない場合に
ReflectionException をスローします。
参考
- ReflectionClass::isInterface() - このクラスがインターフェイスであるかどうかを調べる
- ReflectionClass::isSubclassOf() - サブクラスであるかどうかを調べる
- interface_exists() - インターフェイスが宣言されているかどうかを確認する
- オブジェクト インターフェイス
+add a note
User Contributed Notes 3 notes
jtunaley at gmail dot com ¶
6 years ago
Note that this method also returns true when the thing you're reflecting is the interface you're checking for:
<?php
interface MyInterface {}
$reflect = new ReflectionClass('MyInterface');
var_dump($reflect->implementsInterface('MyInterface')); // bool(true)
?>
dhairya dot coder at gmail dot com ¶
8 years ago
//checks that whether class Fruit implements interface apple or not
interface Apple {
function taste();
}
class Fruit implements Apple {
function taste() {
echo "Seet";
}
}
$obj=new ReflectionClass('Fruit');
var_dump($obj->implementsInterface('Apple')); //Here it will checks that whether class Fruit implements interface apple or not
keepchen2016 at gmail dot com ¶
7 years ago
interface Factory
{
public function sayHello();
}
class ParentClass implements Factory
{
public function sayHello()
{
echo "hello\n";
}
}
class ChildrenClass extends ParentClass
{
}
$reflect = new ReflectionClass('ParentClass');
var_dump($reflect->implementsInterface('Factory'));
$second_ref = new ReflectionClass('ChildrenClass');
var_dump($second_ref->isSubclassOf('ParentClass'));
$third_ref = new ReflectionClass('Factory');
var_dump($third_ref->isInterface());
//can not be called as static
var_dump(ReflectionClass::isInterface('Factory'));
die;
//#result
bool(true)
bool(true)
bool(true)
PHP Fatal error: Non-static method ReflectionClass::isInterface() cannot be called statically
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google