Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][OOP] Metoda __set nie działa?
djgarsi
post
Post #1





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Witam serdecznie.
Rozpocząłem naukę PHP OOP i jak to zwykle bywa, napotkałem problem i nie wiem o co chodzi.
Otóż mam klasą:
  1. <?php
  2.  
  3. class Samochod {
  4. public $predkosc_maksymalna;
  5.  
  6. function __set($nazwa, $wartosc) {
  7. if (($nazwa == "predkosc_maksymalna") && ($wartosc > 0) && ($wartosc < 350)) {
  8. $this->predkosc_maksymalna = $wartosc;
  9. }
  10. else {
  11. echo "Za szybko, zwolnij!";
  12. }
  13. }
  14. }
  15.  
  16. $pojazd = new Samochod;
  17. $pojazd->$predkosc_maksymalna = 200;
  18.  
  19. echo $pojazd->predkosc_maksymalna;
  20. ?>


Przy każdej wartości (np. 200) wyrzuca, że "za szybko" a jak wiadomo przy 200 powinno działać normalnie.
Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


  1. $pojazd->predkosc_maksymalna = 200; //bez $


Poza tym dodaj tam sobie w ifie echo 'wykonałem';, poczytaj dokumentację http://www.php.net/manual/en/language.oop5....php#object.set zwłaszcza
Cytat
/** Overloading not used on declared properties. */
public $declared = 1;
i zastanów się dlaczego to jest źle.

Ten post edytował viking 30.04.2013, 17:57:44
Go to the top of the page
+Quote Post
djgarsi
post
Post #3





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Cytat(viking @ 30.04.2013, 18:52:01 ) *
  1. $pojazd->predkosc_maksymalna = 200; //bez $


Poza tym dodaj tam sobie w ifie echo 'wykonałem';, poczytaj dokumentację http://www.php.net/manual/en/language.oop5....php#object.set zwłaszcza
i zastanów się dlaczego to jest źle.



No dobra, usunąłem $, dodałem echo w if'ie i ustawiłem public $predkosc_maksymalna=0;.
Sytuacja wygląda teraz tak, że wyświetla po prostu wartość prędkości, tak jakby pomijało całkiem if'a.
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 06:51