![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 26.09.2004 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Czy ktoś z Was wie jak odczytać nazwy pól obiektu, jeśli były one ustawiane metodą __set?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Zależy mi na takim oto rozwiązaniu: Mam klasę View(). Dla obiektu tej klasy w kontrolerze ustawiam różne dane. Ponieważ może być ich zmienna liczba, dlatego nie chcę towrzyć stałych pól np $model1, $model2, zamiast tego używam metody __set do ich ustawiania. Teraz w metodzie show() chcę odczytać nazwy tych pól i przypisać je do szablonu Smarty. Próbowałem to zrobić funkcją get_class_vars(get_class($this)) ale okazało się, że odczytuje ona tylko pola predefiniowane wcześniej w klasie. Pól ustawionych za pomocą __set nie widzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Jeśli ktoś ma jakiś pomysł będę wdzięcny. Oto kod:
A oto przykład użycia w kontrolerze:
Myslę, że sprawa jest warta zachodu, bo czy przypiszemy jedną listę czy 15, klasa HTMLView za nas robiłaby całe przypisanie do Smarty. Poza tym kod jest zupełnie niezależny od danych pobranych z modelu. Ten post edytował jafet 20.04.2006, 22:49:26 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
HA! Miałem rację, poprzez iterację są widoczne również dynamiczne pola klasy.
Przeanalizujcie sobie ten przykład.
a to jest output: Kod Iteracja poprzez metode klasy publicChild => publicChild private1Child => privateChild protectedChild => protectedChild publicParent => publicParent protectedParent => protectedParent name_01 => value 01 name_02 => value 02 name_03 => value 03 Iteracja poprzez funckję zewnętrzna publicChild => publicChild publicParent => publicParent name_01 => value 01 name_02 => value 02 name_03 => value 03 Oj, dopiero teraz zauważyłem ten warunek: Cytat Czy ktoś z Was wie jak odczytać nazwy pól obiektu, jeśli były one ustawiane metodą __set?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) . Więc to co napisałem, raczej się tobie nie przyda ~jafet.
Ten post edytował LBO 21.04.2006, 21:37:50 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 09:04 |