2

使用以下内容并不像我预期的那样工作。使用有效的类名,它可以执行,但使用不存在的类,它只会崩溃而不会记录任何错误。这是预期的行为吗?如果是这样,有关如何测试对象是否正确实例化的任何建议?

$className = 'SomeClass';
try {
    $object = new $className;
    if (is_object($object)) {
        $logger->info(__METHOD__.' object created');
        return $object;
    } else {
        $logger->err(__METHOD__.' '.$className.' is not an object!');
    }
} catch (Exception $e) {
    $logger->err(__METHOD__.' error: '.print_r($e->getMessage()));
}
4

1 回答 1

2

为此,您可以使用class_exists函数。

// Check that the class exists before trying to use it
if(class_exists($className)) {
    $object = new $className();
} else {
    // Do stuff for when class does not exist
}
于 2013-01-10T18:08:36.653 回答