如何确保不会“调用非对象上的成员函数”致命?如何处理“调用非对象上的成员函数”
福克斯例如,我经常在我的模板是这样的:(我觉得非常方便和可读性):
<?php echo $object->getRelatedObject()->getProperty()->formatProperty() ?>
然而,这种方法仅如果每个方法返回正确的类的对象。但情况并非总是如此。相关对象可能不存在于数据库中,因此它返回null,并且您面临致命错误。然后你去手动检查返回值:
<?php if (is_object($object->getRelatedObject()) && is_object($object->getRelatedObject()->getProperty())):
<?php echo $object->getRelatedObject()->getPreperty()->formatProperty() ?>
<?php endif; ?>
但是,这是不可读的了。你如何解决这个问题?
如果没有对象返回,可能应该抛出一个异常,给定一个名称,如get * Object()。 – Craige 2010-12-15 16:32:03
我很想看到一个网页设计师的脸,当他在模板中的try/catch块中st ..时。 – Dziamid 2010-12-15 20:55:21