2011-12-20 150 views
1

我有以下類到我的主類中的另一個類。PHP OOP - 從類內的另一個類調用靜態方法

class Products 
{ 
    public function __get($key){ 
     return trim(functions::mssql_escape_string_rev($this->fields[ $key ])); 
    } 
} 

這回人類錯誤:Call to undefined method functions::mssql_escape_string_rev()

是不是有什麼毛病我的語法或可這不能做?

下面是用於自動載入類的代碼,這適用於其他任何事情,所以我知道代碼沒有錯誤。它似乎並沒有在課堂上發起。

// autoloader function called when we try to instantiate a class but haven't included the file 
function __autoload($resource_name){ 

    $resource_name = trim($resource_name); 

    try { 

     $filepath = CLASS_PATH."/class.".$resource_name.".inc.php"; 

     if(@!include($filepath)){ 

      throw new Exception(''); 
     } 

    } catch(Exception $e) { 

     exit("Could not find the required file: ".$resource_name); 

    } 
} 

** * ****編輯* **** 請忽略這一點,我犯了一個愚蠢的錯誤,其中包括功能:: mssql_escape_string_rev兩次。對不起,時間浪費..

+0

「功能」是你的另一類嗎? – hungneox 2011-12-20 12:32:53

+0

函數是你定義的類嗎? – Sudantha 2011-12-20 12:37:17

+0

是的,它是一個充滿靜態功能的類。 – LeeTee 2011-12-20 12:37:21

回答

1

由於錯誤說問題是functions::mssql_escape_string_rev()沒有定義。

由於我們無法看到您認爲的定義,所以我們無法真正幫助您。

對我來說,它看起來像撥打Functions::mysql_escape_string_rev()與資本Fmysql

更新

調用從另一個類的靜態功能正常工作:包括你的功能類前http://codepad.org/wrfm5X7j

也許你在呼喚mysql_escape_string_rev。

+0

爲什麼他不應該使用mssql?但我同意首都'F'。 – mAu 2011-12-20 12:44:56

+0

哦,他可以。但是由於我們不知道,我只能猜測,而mysql更可能是mssql。 – PiTheNumber 2011-12-20 12:47:09

+0

我正在使用mssql而不是mysql。另外我的班級職能是一個小的f不是大寫的。因此我的方法標題和類標題是正確的PS。我是她; 0) – LeeTee 2011-12-20 13:59:59