<?php class mojaklasa { var $atrybut = 6; function __get($nazwa) { return $this -> nazwa; } function __set($nazwa, $wartosc) { if ( $nazwa = 'atrybut' && $wartosc >= 0 && $wartosc <= 100) $this -> atrybut = $wartosc; } } $a = new mojaklasa(); $a -> atrybut = 101; ?>
Głównie chodzi mi o _set no bo zamieściłem tam instrukcje, a raczej przepisałem gotowy przykład z podręcznika, i według mnie ma to działać na takiej zasadzie, że gdy chcemy zmienić wartość atrybut z poza klasy to instrukcja sprawdza czy nowa właściwość żeczywiście dotyczy tego atrybutu i czy jest liczbą w przedziale 0..100, no i po za klasą zrobiłem sobie mały test tego. Czyli tworze obiekt, później sprawdzam wartość atrybutu, jest to oczywiście 6 tak jak ustawiłem w klasie, no ale zaraz potem zmieniam wartość atrybutu na 101 i znowu sprawdzam wartość atrybutu, i zamiast pokazać błąd to wyświetla atrybut z nową wartością przekraczającą ustawiony zakres :/ no chyba, że to wszystko źle zrozumiałem i to tak ma właśnie działać :/