Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dostęp do klasy z poziomu innej klasy
Forum PHP.pl > Forum > Przedszkole
red9skull
Mam 2 pliki: index.php i mysql.php. W mysql.php mam klasę 'mysql' a w index.php klasę 'rss'. Kod wygląda mniej więcej tak:
  1. //index.php
  2. <?php
  3.  
  4. class rss
  5. {
  6. private function tralala();
  7.  
  8. private function omgrotflollmao()
  9. {
  10. $mysql->do_it("wuteef");
  11. }
  12.  
  13. public function pokaz_cycki()
  14. {
  15. $this->omgrotflollmao();
  16. }
  17. }
  18.  
  19. $mysql = new mysql();
  20. $mysql->connect();
  21.  
  22. $rss = new rss();
  23. $rss->pokaz_cycki();
  24.  
  25. ?>

  1. <?php
  2.  
  3. class mysql
  4. {
  5. public function connect()
  6. {
  7. $host="localhost";
  8. $db_user="";
  9. $db_password="";
  10. $database="";
  11.  
  12. mysql_connect($host,$db_user,$db_password) or die(mysql_error());
  13. mysql_select_db($database);
  14. }
  15.  
  16. public function do_it($ziuu)
  17. {
  18. mysql_query("DROP TABLE '$ziuu' CASCADE");
  19. }
  20. }
  21.  
  22. ?>


I to skutkuje błędem:
Cytat
Undefined variable: mysql


Dlaczego?
wookieb
No bo w tej metodzie nie ma zmiennej $mysql
Musisz ten obiekt przekazać do tej metody bądź po prostu dołączyć do klasy rss

Druga NIE POLECANA opcja to użycie global
red9skull
Cytat(wookieb @ 15.06.2010, 14:37:46 ) *
No bo w tej metodzie nie ma zmiennej $mysql
Musisz ten obiekt przekazać do tej metody

ok dzięki, myślałem, że jest jakiś inny sposób winksmiley.jpg
gothye
global ? zmień to lepiej na :

dodanie w rss i przekazanie obiektu

private $db ;

  1. __construct($db)
  2. {
  3. $this->db = $db ;
  4. }


w klasie rss odwołujesz sie do klasy mysql przez :

  1. $this->db->query itp
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.