2010-07-21 163 views
2

我想了解類和函數如何工作更多。 所以我寫了一個有2個函數的類。然後用類構造函數

$fifaadmin = new FifaAdmin; 

發起類當我嘗試從另一個調用頁面我得到以下錯誤

調用一個成員函數leagueToReplace()一個非對象該類

我在做什麼錯?有明顯的答案嗎? 謝謝

+0

您需要提供更多的代碼背景 - 顯示類定義等 – Amber 2010-07-21 00:25:51

回答

1

聲音像$fifaadmin沒有正確實例化對象。

這是什麼意思?

var_dump($fifaadmin instanceof FifaAdmin); 

如果設置正確,應該返回true。在你調用一個方法之前試一試。

當你說另一頁,你的意思是來自一個PHP包含或一個新的URL(因此請求)?

您將需要在每個請求上實例化它,因爲HTTP是無狀態的。

+0

返回假的! 在另一個頁面上,像包含文件是的。 fifaadmin是一個名爲fifaadmin.php的頁面上的一個類,它是一個包含。 當我說$ fifaadmin-> method1();它應該使用該方法。 – sark9012 2010-07-21 00:34:20

+0

確保在嘗試製作對象的實例之前包含類定義。 – alex 2010-07-21 00:38:32

+0

在PHP會話中保存自定義類的對象的情況下也是如此。 – kiamlaluno 2010-07-21 00:41:48

2

您需要實例化每個頁面上的類。每個腳本都是獨立執行的。

1

根據您的代碼做什麼,你可能需要使用static方法:如果你想使用不同的頁面類的一個實例

// common.php 
class Common { 
    public static function calculate($x, $y) { 
     return $x + $y; 
    } 
} 

// another PHP file: (you still need to include common.php 
// you won't need to instantiate the class 

echo Common::calculate(10, 20);