php - 使用变量名实例化 PHP 对象时捕获错误

标签 php object

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

$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/

相关文章:

php - 在给定属性值的对象数组中查找数组键

javascript - 如何在对象数组中设置每个对象的属性?

php - 如何在PHP中获取对象的 protected 属性

c# - C#中如何将对象作为参数传递

c++ - 如何柯里化(Currying)对象上的方法以将其作为 C 风格回调传递?

php - 小型应用程序的 Mysql 缩放

php - 有没有任何系统可以检查 php 脚本是否安全?

php - 如何获得下个月的同一天?

php - 本地主机上的 SMTP connect() 失败错误

php - 无法访问 localhost/xampp/index.php