PHP のクラスのメソッド内で class_exists() を使用しようとすると、クラスの完全な名前を指定する必要があります。現在の名前空間は考慮されません。たとえば、私のクラスが次の場合:
<?
namespace Foo;
class Bar{
public function doesBooClassExist(){
return class_exists('Boo');
}
}
Boo はクラス (適切に自動ロードする) であり、次のようになります。
namespace Foo;
class Boo{
// stuff in here
}
私が試してみると:
$bar = new Bar();
$success = $bar->doesBooClassExist();
var_dump($success);
あなたはfalseを取得します...完全なクラス名(つまりclass_exits('Foo\Boo')
)を明示的に指定せずにこれを行う別の方法はありますか?