使用以下内容并不像我预期的那样工作。使用有效的类名,它可以正常执行,但是如果使用不存在的类,它就会崩溃而不会记录任何错误。这是预期的行为吗?如果是这样,关于如何测试对象是否正确实例化有什么建议吗?
$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()));
}
最佳答案
为此,您可以使用 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
}
关于php - 使用变量名实例化 PHP 对象时捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264408/