2011-09-08 14 views
0

當我運行的index.php和加載頁面,它下面的錯誤出現:嚴格的標準:RPA :: PreLoadField(聲明)應與基金會:: PreLoadField()的兼容

Strict Standards: Declaration of RPA::PreLoadField() should be compatible with that of Foundation::PreLoadField() in C:\xampps\htdocs\Res\RPA.php on line 39

我看了一下RPA.php的39行,這就是所謂的類:

class RPA extends Foundation 

這個錯誤任何想法?

這個功能是從基礎班:

public function PreLoadField($table, $column, $rowid, $coldata, &$value, $disabled=false) 
     { 
     $retval = false; 

     if ($table === 'photos') 
      { 
      if ($column === 'blogentry') 
       { 
      $value = LookUpBlogEntries ($column, $coldata[$column]); 
       $retval = true;  
       } 
      } 

     return $retval; 
     } 

這個功能是從RPA類:

public function PreLoadField($table, $column, $rowid, $coldata, &$value) 
     { 
     $retval = parent::PreLoadField($table, $column, $rowid, $coldata, &$value); 

     return $retval; 
     } 

RPA延伸基金會..

+0

Foundations :: PreLoadField有比RPA :: PreLoadFields($ disabled)更多的參數。您需要將$ disabled = false添加到您的RP​​A方法中。 – Corbin

+0

已添加,但仍無法使用! –

+0

現在不同的消息?或者沒有做任何事情?不工作是什麼意思? – Corbin

回答

2

我的猜測(因爲你沒有張貼足夠的代碼來告訴)是,你正在使用不同簽名的父類中的方法。像:

class A 
{ 
    public function blah($a, $b) { } 
} 

class B extends class A 
{ 
    public function blah($a) { } 
} 

PHP會抱怨(因爲它應該)。調用代碼是否需要提供一個或兩個參數?

1

當我在joomla安裝中將E_STRICT打開時,我遇到了類似的警告。在每一個案例中,我檢查了兩個函數,發現問題是在一個函數中傳遞的參數數量與另一個函數不同。作爲一般規則,我能夠通過添加缺少的參數(如$ param = null)來修復所有錯誤。

我建議你在整個代碼上搜索一下,看看這兩個函數是如何被調用的。這可能會給你一個關於如何解決問題的線索。

祝你好運! PS:順便說一下,根據我的經驗,您不一定必須解決這些警告。在我的情況下,Joomla在我修復警告之前工作正常。

0

在你的php.ini文件中,你需要將你的error_reporting設置改爲排除E_STRICT。 例如: error_reporting(E_ERROR | E_WARNING | E_PARSE);

請注意,E_ALL也導致問題,因爲它包括E_STRICT自PHP 5.0.0#。

相關問題