2012-12-27 62 views
0

我看到Creating default object from empty value這裏有大約一百個不同的問題。他們沒有一個真的幫我解決問題。PHP - E_STRICT:從空值創建默認對象

我在方法中分配同一個類的子對象。這會觸發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;上。我如何正確處理這個問題?

回答

2

好像你正在通過NULLassignElementget_class使用無參數調用或使用null作爲參數,返回定義對象的類,因此您的if條件對於空值爲true。你應該首先使用is_object

+0

這就是發生了什麼事。這在大型應用程序中被廣泛使用,並且傳遞給它的變量偶爾不確定。有趣的是,它給了我一個E_STRICT錯誤,而不是一個通知/未定義的錯誤。 – teynon

+0

缺乏通知可能是因爲您的方法中的參考。 –

相關問題