2

如果您在另一个类的命名空间中,如何使用 class_exists 检查全局类是否存在?例如:

<?php
namespace Rvdv\Test\Example;

class ExampleClass
{
    public function testNamespace()
    {
        // This says that it doesn't exists :(
        print class_exists('\\Test');
    }
}

其中 class 是全局定义的类。

4

1 回答 1

3

你不得不在你的其他问题中搞砸一些东西——很可能类测试没有在这个范围内声明(你忘了包含吗?)。因此,我对此进行了测试:

phpcltest2.php:

<?php
class Test { }

phpcltest.php:

<?php
namespace Rvdv\Test\Example;
require 'phpcltest2.php';

class ExampleClass
{
    public function testNamespace()
    {
    print class_exists('\\Test');
    }
}

$nc = new ExampleClass();
$nc->testNamespace();

结果是预期的:它打印出“1”。所以检查你的包含路径。

于 2012-12-05T14:36:51.567 回答