Hi everyone,
I’m really new to php. I was just wondering why I get a certain error. I’m sure the solution is really simple, but i’m not familiar enough with php to really see the mistake I’m making. Any help is really appreciated.:
Notice: Undefined variable: deck in /home/brian/NetBeansProjects/twentynine/cards.php on line 121
Fatal error: Call to a member function get_suit() on a non-object in /home/brian/NetBeansProjects/twentynine/cards.php on line 121
The code below is incomplete but as of right now I’m trying to work past this error.
(I’ve marked line 121 with ********************)
[php]
<?php class card { private $suit; private $value; function __construct($s_value, $s_suit) { if (!$this->set_value($s_value) || !$this->set_suit($s_suit)) { echo "FAILED to create card
"; $value = null; $suit = null; return false; } return true; } public function get_suit() { return $suit; } public function get_value() { return $value;Notice: Undefined variable: deck in /home/brian/NetBeansProjects/twentynine/cards.php on line 121 Fatal error: Call to a member function get_suit() on a non-object in /home/brian/NetBeansProjects/twentynine/cards.php on line 121 } private function set_value($s_value) { if(($s_value < 0) || ($s_value > 13) || !is_int($s_value)) { echo "Value: $s_value
"; echo "Error: the value must be an integer between -1 and 14
"; $value = null; $suit = null; return false; } else { $value=$s_value; } return true; } private function set_suit($s_suit) { if($s_suit != 'c' && $s_suit != 'd' && $s_suit != 'h' && $s_suit != 's' && $s_suit != 'j') { echo "Value: $s_suit
"; echo "Error: the suit must be c, d, h, or s
"; $value = null; $suit = null; return false; } else { $suit=$s_suit; } return true; } } class deck { private $deck; private $additional_cards; private $amount_of_cards; private $amount_of_additional_cards; public function create_deck() { $deck = array(); for($i = 0; $i<13; ++$i) { $deck[$i] = new card($i+1, 'c'); $deck[$i+13] = new card($i+1, 'h'); $deck[$i+26] = new card($i+1, 's'); $deck[$i+39] = new card($i+1, 'd'); } $deck[52] = new card(0, 'j'); $deck[53] = new card(0, 'j'); $amount_of_cards = 53; $amount_of_additional_cards = 0; } public function show_deck() { for($i = 0; $i<54; ++$i) { $temp_suit = $this->show_card_suit($i); $temp_value = $this->show_card_value($i); echo "$temp_suit, $temp_value
"; } } public function show_card_value($card_num) { if($card_num < 0 || $card_num > $amount_of_cards) { echo "Error: card does not exist.
"; return false; } return $deck[$card_num]->get_value(); } public function show_card_suit($card_num) { if($card_num < 0 || $card_num > $this->amount_of_cards) { echo "Error: card does not exist.
"; return false; } *********************** return $deck[$card_num]->get_suit($card_num); } function remove_card($card_num) { if($card_num < 0 || $card_num > 51) { echo "ERROR CARD DOES NOT EXIST"; return false; } $amount_of_cards--; $temp_save_card = $deck[$card_num]; for($i=$card_num; $i<$amount_of_cards+1; $i++) { $deck[$i] = $deck[$i+1]; } return $temp_save_card; } } ?>[/php]