我有一些包含一些文本字段的多页表单。当您填写表单并按下一步时,表单将值存储在对象中。 当您按下后退按钮时,它会在文本字段中重新加载这些值。这很好。
但是当您最初加载表单时,不会创建对象,因此没有任何内容可以加载值,并且我会在非对象错误上调用成员函数。
示例:
<inputfield value='$object->getValue()'>
有没有办法告诉它当对象不存在时才将它留空?
答案 0 :(得分:3)
在使用对象之前,您可以执行以下操作:
// All methods called on this object return an empty string.
class EmptyObject {
public function __call($name, $args) {
return '';
}
}
// Use fake object if $object is not defined correctly.
if (!is_object($object)) {
$object = new EmptyObject();
}
__call
是PHP中的magic method。每次在对象上调用未定义的方法时都会调用它。
答案 1 :(得分:1)
这也是一种isset方法:
if(isset($object)){
//it is there
}
答案 2 :(得分:1)
试试这个:
$output = "<inputfield value='". (isset($object) ? $object->getValue() : '') . "'>";
答案 3 :(得分:0)
有is_object
方法:
if (is_object($object)){
// it is there
}
所以你可以检查一下这样的事情:
<inputfield value='<?php is_object(@$object) ? $object->getValue() : '';?>'>