Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z extends
Forum PHP.pl > Forum > PHP > Object-oriented programming
themonkeypl
Witam, nie wiem czy wybrałem dobry dział na ten temat ale najbardziej pasował. Mam taki problem gdy zaincluduje plik z class'ą db w pliku classy account i rozszerzę ją to i tak funkcje które są w class'ie db nie mogę użyć w account. Nie wiem czy to ja zrobiłem błąd gdzieś czy w php 5.4 zmieniło się coś i trzeba jakoś innaczej to robić, bo gdy używam 5.2 to wszystko działa bez problemu.


to jest klasa account:
  1. include 'db.php';
  2. class account extends db{
  3.  
  4.  
  5. public function get_info($what, $user_id){
  6.  
  7. $result = db::query("Select ".$what." From users Where id = '".$user_id."'");
  8. return $this->fetch_array($result);
  9. }
  10. }


A to klasa db:
  1. require('configs/config.php');
  2. class db {
  3. public function __construct() {
  4. global $cfg;
  5. mysql_connect($cfg['db']['server'], $cfg['db']['user'], $cfg['db']['pass']);
  6. mysql_select_db($cfg['db']['name'])or die("asd");
  7. }
  8. public function query($query){
  9. return mysql_query($query);
  10. }
  11. public function num_rows($query){
  12. return mysql_num_rows($query);
  13. }
  14. public function fetch_array($query){
  15. return mysql_fetch_array($query);
  16. }
  17. }
skowron-line
Kod
$result = $this->query("Select ".$what." From users Where id = '".$user_id."'");
themonkeypl
gdy użyje $this-> to odwołuje mi się do funkcji z klasy account.

tak jest gdy użyje $this->
Fatal error: Call to undefined method account::query() in C:\xampp\htdocs\cms\classes\account.php on line 9

a tak gdy użyje db::
Fatal error: Call to undefined method DB::query() in C:\xampp\htdocs\cms\classes\account.php on line 9

dodam jeszcze że gdy normalnie wkleje kod klasy db do pliku z klasą account, to wszystko jest ok. gdy tylko próbuje ją wczytać z osobnego pliku napotykam ten problem.
!*!
themonkeypl - nie idź tą drogą... rzadko to piszę, ale wynajdujesz koło na nowo i robisz z niego kwadrat. Niedawno w tym dziale była w miarę dobra klasa do połączeń DB. A do wczytywania plików w OOP używa się SPL loaderów, a nie wczytuje pliki przez include/require wink.gif o PDO nie wspominając.
themonkeypl
aha dziękuje. Zaczynam dopiero przygodę z oop, więc muszę poczytać o tym spl loader.
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.