PHP类启动错误?

时间:2011-06-24 19:23:57

标签: php

我有

$test = 'SomeClass';
$ins = new $test;

如果$test的名称不存在,我希望能够捕获错误。

我不确定它抛出了什么类型的异常,因为PHP没有给我任何东西。

4 个答案:

答案 0 :(得分:4)

使用class_exists()

首先检查:

if(class_exists($test)){
    $ins = new $test;
}else{
    die("Could not load class'" . $test ."'");
}

答案 1 :(得分:0)

除非您使用某些error handler,否则此类构造不会让您捕获任何错误。但是,您可以使用class_exists() function检查类是否存在。

PS。您应该使用reflection,因为它更加详细和清晰。它还使用异常,因此您可以执行以下操作:

try {
    $ref = new \ReflectionClass($className);
} catch (\LogicException $le) {
    // class probably doesn't exist
}

答案 2 :(得分:0)

首先,您必须测试$ test类是否存在。 http://php.net/manual/en/function.class-exists.php

答案 3 :(得分:0)

使用PHP 5.3(或更高版本),您可以捕获从__autoload

抛出的异常
function __autoload($name) {
    // if class doesn't exist:
        throw new Exception("Class $name not found");
    // else, load class source
}


$test = 'SomeClass';    
try {
    $ins = new $test;
} catch (Exception $e) {

}