Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> tworzenie obiektu klasy dwa razy ?
boya
post
Post #1





Grupa: Zarejestrowani
Postów: 287
Pomógł: 0
Dołączył: 26.02.2003
Skąd: Ow/Pn

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


Witam

Mam glowny plik do ktorego wciagam za pomoca include_once pliki z klasami i pozniej tworze obiekt klasy

  1. <?php
  2. include_once(".././class/klasa.php");
  3.  
  4. $this= new sklep;
  5. $wysylka= new wysylka;
  6. ?>


no i gitara gdzie bym nie potrzebowal stworzyc obiekt do klasy wszedzie dziala.

Ale w klasie wysylka mam klika funkcji ktore odwoluja sie do innych funkcji w ramach tej klasy wiec normalnie zrobil bym tak:

  1. <?php
  2. class wysylka(){
  3.  
  4.  funkcja pierwsza(){
  5.  ...
  6.  return $zmienna;
  7.  
  8.  }
  9.  
  10.  funkcja druga(parametr1,parametr2){
  11.  $wysylka->pierwsza();
  12.  }
  13.  
  14. }
  15. ?>


wynik takiej operacji to Fatal error: Call to a member function on a non-object in /home/test/public_html/class/klasa.php on line 467

problem znika gdy dodamy stworzymy obiekt klasy po raz drugi:

  1. <?php
  2. funkcja druga(parametr1,parametr2){
  3.  
  4.  $wysylka= new wysylka; // drugi raz
  5.  $wysylka->pierwsza();
  6.  
  7. }
  8. ?>


czy to prawidlowe rozwiazanie, czy ja cos spiepszylem ?
pozdrawiam

Ten post edytował boya 29.05.2007, 13:40:07
Go to the top of the page
+Quote Post
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Do odwoływania się do innych metod danej klasy, wewnątrz innej jej metody, służy słowo kluczowe $this.
  1. <?php
  2. class Klasa
  3. {
  4. public function pierwsza()
  5. {
  6. print "To jest pierwsza metodan";
  7. }
  8.  
  9. public function druga()
  10. {
  11. $this->pierwsza();
  12. print "To jest metoda druga, używająca metody pierwsza()n";
  13. }
  14. }
  15.  
  16. $klasa = new Klasa();
  17. $klasa->druga();
  18.  
  19. //Wyświetli się:
  20. //To jest pierwsza metoda
  21. //To jest metoda druga, używająca metody pierwsza()
  22. ?>


Ten post edytował LBO 29.05.2007, 13:53:37
Go to the top of the page
+Quote Post
boya
post
Post #3





Grupa: Zarejestrowani
Postów: 287
Pomógł: 0
Dołączył: 26.02.2003
Skąd: Ow/Pn

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


o tym slowie kluczowym nie doczytalem z manuala,
dziekuje i pozdrawiam
Go to the top of the page
+Quote Post
DeyV
post
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Co więcej - nie wolno używać słowa $this w żadnym innym kontekstcie.
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: 24.08.2025 - 09:32