2014-02-25 133 views
0

我已經設置了一個有幾個函數的類。我已經包括一個單獨的PHP文件到主要的一個。我設置了一些公共職能,所有這些都在工作。我只是去添加一個新的,它拋出一個錯誤,我不明白爲什麼。調用未定義的方法。無法弄清楚爲什麼

if(!class_exists("classBase")) 
    { 
    class classBase 
     { 

     public function printName() 
     { 
      $name = 'Test Name!'; 
      return $name; 
     } 

    } 
} 

我的單獨文件包含在這個文件中,我試圖調用這個函數,因爲我是我在文件中的所有其他函數。

<?php $this->printName(); ?> 

我嘗試過該文件包含後聲明的功能,但因爲種種原因,這是引發錯誤: Fatal error: Call to undefined method classBase::printName()

我甚至嘗試複製工作功能,附加一個數字的函數名稱,並調用該新函數。但仍然拋出一個錯誤。我很困惑,爲什麼它不工作。

+0

爲什麼你在一個類中包含文件? – BenM

+0

我不知道。我接管了其他人正在撰寫的舊插件的開發。 – EHerman

+0

你能展示完整的例子,包括'include()'函數嗎? – BenM

回答

0

面對棕櫚

因此,該死的尷尬......

我有兩個本地主機考點設置。我正在編輯我未測試的網站上的類文件,並將該函數的調用添加到我正在測試的網站中。因此它拋出了錯誤並且它是正確的,該方法從未被定義。

剛用45分鐘想知道我在做什麼錯?

顯然,我需要一步離開計算機和去午餐。

+1

會發生,你會記得主要:) – 2014-02-25 18:33:07

3

您需要初始化該類的一個實例。在您的例子:

if(!class_exists("classBase")) 
{ 
    class classBase 
    { 

     public function printName() 
     { 
      $name = 'Test Name!'; 
      return $name; 
     } 

    } 
} 

$myInstance = new classBase(); 

$myInstance->printName(); 
相關問題