0

我看到这里有大约一百个不同的问题Creating default object from empty value。他们似乎都没有真正帮助解决我的问题。

我在方法中分配了同一类的子对象。这会触发Creating default object from empty value错误。

class myClass {


    function __construct($rootName, $allowHTML = false, $endTag = true) {
        $this->rootElement = $rootName;
        $this->elements = array();
        $this->attributes = array();
        $this->value = "";
        $this->allowHTML = $allowHTML;
        $this->endTag = $endTag;
        $this->styles = array();
        $this->childID = 0;
    }

    // ... OTHER METHODS HERE (ALL PROPERTIES DECLARED)

    function assignElement(&$theElement) {
        // Get the index.
        $index = count($this->elements);

        // Assign the element.
        $this->elements[$index] = $theElement;

        if (get_class($theElement) == get_class($this)) {
            $this->elements[$index]->childID = $index;
        }

        // Return the node.
        return $this->elements[$index];
    }
}

错误发生在$this->elements[$index]->childID = $index;。我该如何正确处理?

4

1 回答 1

2

好像你正在传递NULLassignElement. get_class不带参数或 null 作为参数调用,返回定义它的对象的类,因此if对于 null 值,您的条件为真。你应该is_object先使用。

于 2012-12-27T15:39:33.270 回答