PHPのtraitはinstanceofで確認できない
PHPではtraitというメソッドの固まりみたいなものをクラス内に差し込むことができる。
が、interfaceと違って、instanceofで特定のtraitが使用されているか判定することができないようだ。
traitの場合
<?php trait MyTrait {} class MyClass { use MyTrait; } $my_instance = new MyClass(); var_dump($my_instance instanceof MyTrait); //=> bool(false)
interfaceの場合
<?php interface MyInterface {} class MyClass implements MyInterface {} $my_instance = new MyClass(); var_dump($my_instance instanceof MyInterface); //=> bool(true)