Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Klasa, błąd
Forum PHP.pl > Forum > Przedszkole
ArekJ
Witam, stworzyłem klasę dla gracza, żeby łatwiej było wszystko obsłużyć jednak mam pewne dwa błędy.

Warning: Missing argument 1 for player::player(), called in /var/www/gra.php on line 5 and defined in /var/www/playerclass.php on line 12

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/playerclass.php on line 14

A kod pliku playerclass.php to
  1. <?php
  2. include 'includes/config.php';
  3.  
  4. $id = $_SESSION['id'];
  5.  
  6. class player
  7. {
  8.    var $login;
  9.    var $kasa;
  10.  
  11.   function player($id)
  12.    {
  13.        $stats = mysql_fetch_array(mysql_query("SELECT * FROM `uzytkownicy` WHERE `id` = $id"));
  14.        $this -> login = $stats['login'];
  15.        $this -> kasa = $stats['kasa'];
  16.    }
  17. }
  18. ?>

Nie zabardzo wiem jak temu zaradzić. Ma ktoś jakieś sugestie?
nospor
komunikat jest dosc oczywisty: metoda player() wymaga do wywolania argumentu, ktorego ty nie raczysz jej zapodac gdy ją wywolujesz
ArekJ
Nie do końca rozumiem... Przecież przesyłam jej ID...
nospor
w definicji okreslasz jej ID.
ALe przy wywolaniu masz to id zapodac.

Rozróżniasz "definicje" funkcji od jej "wywołania"?

Kod co pokazales do definicja. Blad masz w kodzie wywolania
called in /var/www/gra.php on line 5
ArekJ
A ok smile.gif No to kod wywołania to:
  1. <?php
  2. include 'playerclass.php';
  3. $player = new player;
  4. $player->player($id['id']);
  5. $kasa = $player->kasa;
  6. ?>

Nie wiem co może być źle w tym $player = new player;
nospor
jesli nazwe funkcji nazwiesz tak samo jak nazwa klasa, to funkcja uznana zostaje za konstruktor klasy i jest automatycznie wywolywana przy inicjalizacji obiektu
  1. <?php
  2. include 'playerclass.php';
  3. $player = new player($id['id']);
  4. $kasa = $player->kasa;
  5. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.