2013-05-16 73 views
1

我在我的開發服務器中使用PyroCMS和PHP 5.4.15,所以我安裝了一個新模塊(由其他人創建)並獲取此警告全部時間:在構造函數原因中定義一個var「從空值錯誤創建默認對象」

遇到

一個PHP錯誤

嚴重性:警告

消息:從創造價值的空默認對象

文件名:管理/ newsletters.php

行號:63

這是該行63:

$this->data->pagination = create_pagination('admin/newsletters/index', $total_rows); 

所以在閱讀PHP文檔和谷歌似乎對VAR $this->data尚未初始化所以在CLASE的構造我聲明如下:

public function __construct() { 
     parent::__construct(); 

     $this->data = ""; 
} 

但錯誤仍然會出現,所以我的問題是:

  1. 我的解決方案出了什麼問題?
  2. 如果我在類構造函數中聲明或定義了一個var,這個var是否被初始化? (這是相關的OOP部分)

回答

1

您不需要像在功能性PHP中那樣進行初始化。在你的類中定義它足以讓它存在於對象中,供你隨意使用。

Class extends Parent { 
    public $data; 

    public function __construct() { 
    parent::__construct(); 
    $this->data = 'Hello, world!'; 
    } 
} 

用作...

$new = new Class(); 
echo $new->data; 
// Hello, world! 

,同樣...

$new = new Class(); 
$new->data = 'Goodbye, cruel world.'; 
echo $new->data; 
// Goodbye, cruel world. 
+0

我定義了var如你所說我的意思是'公共$ data',然後嘗試使用內一個函數(不是構造函數)以這種方式'$ this-> data-> pagination = create_pagination('admin/newsletters/index',$ total_rows);'但仍然得到相同的錯誤 – Reynier

+0

'$ this-> data-> pagination '沒有在對象中定義...嘗試並定義'public $ pagination'並執行$ this-> pagination = create_pagination('admin/newsletters/index',$ total_rows);' –

+0

不能這樣做,因爲我所取的對象是'data'然後迭代低谷值,我如何消除噪音警告?我知道ini_set是這樣的嗎? – Reynier

相關問題