我想了解類和函數如何工作更多。 所以我寫了一個有2個函數的類。然後用類構造函數
$fifaadmin = new FifaAdmin;
發起類當我嘗試從另一個調用頁面我得到以下錯誤
調用一個成員函數leagueToReplace()一個非對象該類
我在做什麼錯?有明顯的答案嗎? 謝謝
我想了解類和函數如何工作更多。 所以我寫了一個有2個函數的類。然後用類構造函數
$fifaadmin = new FifaAdmin;
發起類當我嘗試從另一個調用頁面我得到以下錯誤
調用一個成員函數leagueToReplace()一個非對象該類
我在做什麼錯?有明顯的答案嗎? 謝謝
聲音像$fifaadmin
沒有正確實例化對象。
這是什麼意思?
var_dump($fifaadmin instanceof FifaAdmin);
如果設置正確,應該返回true
。在你調用一個方法之前試一試。
當你說另一頁,你的意思是來自一個PHP包含或一個新的URL(因此請求)?
您將需要在每個請求上實例化它,因爲HTTP是無狀態的。
返回假的! 在另一個頁面上,像包含文件是的。 fifaadmin是一個名爲fifaadmin.php的頁面上的一個類,它是一個包含。 當我說$ fifaadmin-> method1();它應該使用該方法。 – sark9012 2010-07-21 00:34:20
確保在嘗試製作對象的實例之前包含類定義。 – alex 2010-07-21 00:38:32
在PHP會話中保存自定義類的對象的情況下也是如此。 – kiamlaluno 2010-07-21 00:41:48
您需要實例化每個頁面上的類。每個腳本都是獨立執行的。
根據您的代碼做什麼,你可能需要使用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);
,你需要序列化和地方保存(會話是可以的),並在你想使用它時將其反序列化。有關序列化PHP
您需要提供更多的代碼背景 - 顯示類定義等 – Amber 2010-07-21 00:25:51