Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak uzyc metode obiektu innej klasy w metodzie, referencje i te sprawy...
Kiler
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 22.01.2003
Skąd: www

Ostrzeżenie: (0%)
-----


Jak to zrobic aby do metody przekazac nazwe obiektu z innej klasy i wykorzystac jego metode??
  1. <?php
  2. class language{
  3. var $lng;
  4. var $nazwa;
  5. var $wartosc;
  6. function language($name=&#092;"pl\"){
  7. $this->lng=$name;
  8. }
  9. function wstaw($baza,$nazwa){
  10. //wykorzystanie metod klasy bazasql
  11. $baza->query(&#092;"SELECT * FROM \".$this->lng.\" WHERE nazwa 
  12.  LIKE &#092;".  $nazwa);
  13. $row=$baza->fetch_array();
  14. return $row[1]; 
  15. }
  16. }
  17. $sql = new bazasql;
  18. $sql->connect($host,$user,$haslo,$db);
  19. $lang=new language;
  20. $lang->wstaw($sql,'title');
  21. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
militis
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 17.08.2004
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


klasa::$metoda(argumenty);

afair

Ten post edytował militis 25.10.2004, 20:38:59
Go to the top of the page
+Quote Post
Kiler
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 22.01.2003
Skąd: www

Ostrzeżenie: (0%)
-----


probowalem, ale wyrzuca mi blad: Call to undefined function: error() z klasy w/w statycznie uzytej bazasql...oczywiscie funkcja jest i dziala poprawnie w innych przykladach :/
  1. <?php
  2. class language{
  3. var $lng;
  4. var $nazwa;
  5. var $wartosc;
  6. function language($name=&#092;"pl\"){
  7. $this->lng=$name;
  8. }
  9. function zmien($name){
  10. $this->lng=$name;
  11. }
  12. function wstaw($nazwa){
  13. //
  14. bazasql::query(&#092;"SELECT * FROM \".$this->lng.\" WHERE nazwa LIKE \".$nazwa);
  15. $row=bazasql::fetch_array();
  16. return $row[1]; 
  17. }
  18. }
  19.  
  20.  
  21. $sql = new bazasql;
  22. $sql->connect($host,$user,$haslo,$db);
  23. $lang=new language;
  24. $lang->wstaw('title');
  25. ?>


Ten post edytował Kiler 25.10.2004, 20:47:47
Go to the top of the page
+Quote Post
militis
post
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 17.08.2004
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


przed uzyciem
require('plik.z.klasa');
Go to the top of the page
+Quote Post
marcin96
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 21.08.2003
Skąd: Będzin

Ostrzeżenie: (0%)
-----


  1. <?php
  2. class language{
  3.     var $lng;
  4.     var $nazwa;
  5.     var $wartosc;
  6.     function language($name=&#092;"pl\"){
  7.         $this->lng=$name;
  8.     }
  9.     function wstaw( &$baza, $nazwa){      // tutaj zmiana, bylo: $baza, jest &$baza
  10.         //wykorzystanie metod klasy bazasql
  11.         $baza->query(&#092;"SELECT * FROM \".$this->lng.\" WHERE nazwa 
  12.          LIKE &#092;".   $nazwa);
  13.         $row=$baza->fetch_array();
  14.         return $row[1]; 
  15.     }
  16. }
  17. $sql = new bazasql;
  18. $sql->connect($host,$user,$haslo,$db);
  19. $lang=new language;
  20. $lang->wstaw($sql,'title');
  21. ?>


hm?

..ale mozna to ladniej zrobic:

  1. <?php
  2. class language{
  3.     var $lng;
  4.     var $nazwa;
  5.     var $wartosc;
  6.     var $baza;
  7.  
  8.     function language( &$baza, $name=&#092;"pl\"){       // teraz &$baza tutaj..
  9.         $this->lng=$name;
  10.         $this->baza =& $baza;
  11.     }
  12.  
  13.     function wstaw($nazwa){
  14.         //wykorzystanie metod klasy bazasql
  15.         $this->baza->query(&#092;"SELECT * FROM \".$this->lng.\" WHERE nazwa 
  16.          LIKE &#092;".   $nazwa);
  17.         $row=$this->baza->fetch_array();
  18.         return $row[1]; 
  19.     }
  20. }
  21. $sql = new bazasql;
  22. $sql->connect($host,$user,$haslo,$db);
  23. $lang=new language($sql);
  24. $lang->wstaw('title');
  25. ?>


wtedy nie trzeba przy kazdym 'wstaw' przekazywac obiektu 'baza'. Poczytaj rozdzial o referencjach w manualu, jesli nie wiesz czemu teraz dziala :>)

Ten post edytował marcin96 25.10.2004, 20:55:13
Go to the top of the page
+Quote Post
Kiler
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 22.01.2003
Skąd: www

Ostrzeżenie: (0%)
-----


ok, dziala, dzieki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 03:52