Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie wywolywanie sie operacji
Forum PHP.pl > Forum > PHP
hhg
pmam skrypt i nie wiem dlaczego operacja3 z klasy A sie nie wywoluje


  1. <?php
  2. class A
  3. {
  4. private function operacja1()
  5. {
  6. echo "operacja1 wywolana";
  7. }
  8.  
  9. protected function operacja2()
  10. {
  11. echo "operacja2 wywolana";
  12. }
  13.  
  14. public function operacja3()
  15. {
  16. echo "operacja3 wywolana";
  17. }
  18. }
  19.  
  20.  
  21. class B extends A
  22. {
  23. function __construct()
  24. {
  25. $this->operacja1();
  26. $this->operacja2();
  27. $this->operacja3();
  28. }
  29. }
  30.  
  31.  
  32. $b = new B();
  33. $b -> operacja3();
  34. ?>


czekam na Wasze odp
Cysiaczek
Moim zdaniem (interpreter się ze mną zgadza) ten skrypt zgłasza błąd.
Kod
Fatal error: Call to private method A::operacja1() from context 'B' in


Włącz sobie raportowanie błędów : )

Pozdrawiam.
marast78
a może wcześniej w konstruktorze wywoływana się metoda prywatna co jest błędem snitch.gif hermetyczność nie pozwala dziedziczyć prywatnych atrybutów i metod
hhg
Cytat(Cysiaczek @ 5.01.2007, 15:42:15 ) *
Moim zdaniem (interpreter się ze mną zgadza) ten skrypt zgłasza błąd.
Kod
Fatal error: Call to private method A::operacja1() from context 'B' in


Włącz sobie raportowanie błędów : )

Pozdrawiam.

taki blad wlasnie powinien byc, bo to byl test
dzieki, gdzie sie wlacza raportowanie bledow? (Linux)
Cysiaczek
W pliku php.ini (każdy system)
marast78
albo error_reporting(E_ALL);
hhg
dlaczego wypisuje mi sie 2razy ten tekst "operacja3 wywolana" zamiast raz...
  1. <?php
  2. class A
  3. {
  4. private function operacja1()
  5. {
  6. echo "operacja1 wywolana";
  7. }
  8.  
  9. protected function operacja2()
  10. {
  11. echo "operacja2 wywolana";
  12. }
  13.  
  14. public function operacja3()
  15. {
  16. echo "operacja3 wywolana";
  17. }
  18. }
  19.  
  20.  
  21. class B extends A
  22. {
  23. function __construct()
  24. {
  25. $this->operacja3();
  26. }
  27. }
  28.  
  29.  
  30. $b = new B();
  31. $b -> operacja3();
  32. ?>
Cysiaczek
No przecież jawnie robisz to 2x :|||
Raz w konstruktorze, a raz wywołujesz osobno.
  1. <?php
  2. $b = new B();
  3. $b -> operacja3();
  4. ?>
hhg
racja zapomnialem o konstruktorze
spokojnie dopiero zacząłem klasy... smile.gif

Cytat(Cysiaczek @ 5.01.2007, 15:54:01 ) *
W pliku php.ini (każdy system)
chodzi o linie ktora mam ustawiona na

Cytat
- display_errors = On

?
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.