php默认值和非对象

时间:2010-10-28 12:36:53

标签: php

我有一些包含一些文本字段的多页表单。当您填写表单并按下一步时,表单将值存储在对象中。 当您按下后退按钮时,它会在文本字段中重新加载这些值。这很好。

但是当您最初加载表单时,不会创建对象,因此没有任何内容可以加载值,并且我会在非对象错误上调用成员函数。

示例:

<inputfield value='$object->getValue()'>

有没有办法告诉它当对象不存在时才将它留空?

4 个答案:

答案 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() : '';?>'>