2014-01-27 159 views
0

我目前正在嘗試通過這樣做來學習一些OOP。我正在嘗試創建一個使用商店,物品和銀行的小型角色扮演網站,但唯一的障礙是這種錯誤可能會一直在進行,我不知道如何自己解決。我在互聯網上做了一些搜索,但沒有明確表達。可捕捉的致命錯誤:類播放器的對象無法轉換爲字符串

的劇本給我

Catchable fatal error: Object of class player could not be converted to string

它告訴我,是必須做一些與這家銀行的方法中的查詢;

class bank { 
    Function bankAccountBalance($player) { 
     // getting account balance from player`s bank 
     $check = mysql_query("SELECT * FROM player_bank WHERE player='".$player."'"); 
     while($balance = mysql_fetch_object($check)){return $balance->value;} 
    } 
} 

,它被另一個類

class shop { 
    Function shopBuyItem($player,$item,$amount,$value) { 
     // send item to player, remove value from bank 
     $player = new player; 
     $bank = new bank; 
     $callback = new callback; 
     $newvalue = $amount*$value; // calc total value of items 
     if($bank->bankAccountBalance($player)>=$newValue) 
     { 
     // correct balance, trading the item 
     $player->playerAddItem($player,$item,$amount); 
     $bank->bankRemoveCash($player,$newValue); 
     } 
     else 
     { 
     // Incorrect Balance, abort 
     $callback->errorMessage("Your bank account has insuffient balance. You cannot perform this transaction."); 
     } 
    } 
} 

我希望事情是很清楚的大家幫我解決這個問題被此另一種方法。 如果您需要根據這個主題的其他代碼來幫助我解決它,請問我,因爲我不知道您確切需要什麼。

+0

旁註:在OOP中使用不推薦使用的'mysql_ *'函數沒有意義,它破壞了目的。 –

回答

0

$check = mysql_query("SELECT * FROM player_bank WHERE player='".$player."'");

除了未受保護的查詢,$player是一個對象,你是把它當作一個字符串,你與串查詢的其餘部分相連來。

也許你想調用一些方法,如$player->getId()或公共財產,說$player->id

從技術上講,你可以轉換的對象的字符串(json_encode()serialize()),甚至實現了魔術方法__toString(),但最有可能不是你想要在你的當前設置做什麼,對不對?

+0

這工作,將所有'$ player'對象變量改爲'$ playerObj' –

相關問題