Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
W książce natrafiłem na przykład, który wydaje mi się błędny. Wiem, że książki helionu mają literówki i różnego rodzaju błędy (na stronie helionu w erracie nie ma poprawki do tego), dlatego proszę o sprawdzenie poniższego kodu.
I teraz ten kod gdzie podejrzewam, że jest błąd..
Wydaje mi się, że błąd jest w metodzie validate(). Autor odwołuje suię w ten sposób
a powinno być chyba
jeśli nie to dlaczego właśnie tak? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%)
|
Powinno być
Pierwszy argument to instancja klasy. Drugi argument ('get' . $propertyName) to nazwa metody. Nie widzę nic dziwnego w tym wywołaniu... Dalej...
Tak samo... Pierwszy argument ma być typu callback. Jest to nazwa funkcji albo w przypadku wywoływania metod tablica. Pierwszy elementem tablicy jest referencja do obiektu (albo nazwa klasy, jeżeli wywołujemy statyczną metodę). Drugi element to nazwa metody. Oni to zrobili po to, aby przeciążyć "magiczne" metody, ale nie tracić zachowania metod programisty getXXX... Jeżeli istnieje metoda getWlasciwosc, a ty poprosisz o dane tak:
To i tak efektem będzie wywołanie metody getWlasciwosc... |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%)
|
Powinno być
Pierwszy argument to instancja klasy. Drugi argument ('get' . $propertyName) to nazwa metody. Nie widzę nic dziwnego w tym wywołaniu... $this nie jest instancją klasy(?) getNazwaMetody samo w sobie nie jest dziwne. Dziwne jest to, że w przykładzie, który podałem na samym początku nie ma metody. Jest tylko magiczna (czyli jak dobrze przeczytałem wywoływana automatycznie gdy ktoś chce wywołać nieistniejącą metode), nie ma żadnej innej metody. Dalej...
Tak samo... Pierwszy argument ma być typu callback. Jest to nazwa funkcji albo w przypadku wywoływania metod tablica. Pierwszy elementem tablicy jest referencja do obiektu (albo nazwa klasy, jeżeli wywołujemy statyczną metodę). Drugi element to nazwa metody. Oni to zrobili po to, aby przeciążyć "magiczne" metody, ale nie tracić zachowania metod programisty getXXX... Jeżeli istnieje metoda getWlasciwosc, a ty poprosisz o dane tak:
To i tak efektem będzie wywołanie metody getWlasciwosc... Thx. |
|
|
|
J4r0d Prośba o sprawdzenie klasy 16.08.2006, 09:37:12
envp Zauważ, że masz funkcje __get() oraz __set() - pie... 16.08.2006, 11:26:57
Ludvik Nie podoba mi się ten kod. Po pierwsze właściwość ... 16.08.2006, 14:29:31 
J4r0d Cytat(Ludvik @ 16.08.2006, 13:29 ) Nie po... 17.08.2006, 09:35:12
Ludvik Przepisałeś błędnie niektóre wywołania metod. Zami... 17.08.2006, 09:58:06 
J4r0d Cytat(Ludvik @ 17.08.2006, 08:58 ) Przepi... 17.08.2006, 10:07:49
Ludvik $this jest referencją do obiektu, którego met... 17.08.2006, 20:50:09
J4r0d Analizuje ten przykład jeszcze raz i mam wrażenie,... 21.08.2006, 10:54:55
Ludvik Tak też może być. Autor klasy zakładał, że nawet w... 21.08.2006, 11:15:47 
J4r0d Cytat(Ludvik @ 21.08.2006, 10:15 ) Tak te... 21.08.2006, 16:49:32
Ludvik CytatPo co? Jak istnieje metoda to ją wykonujesz a... 21.08.2006, 17:57:31 
J4r0d Cytat(Ludvik @ 21.08.2006, 16:57 ) Nie od... 21.08.2006, 18:08:50
Ludvik Mylisz się. Przeanalizuj dobrze kod. Żeby wywołać ... 21.08.2006, 19:12:02 
J4r0d Cytat(Ludvik @ 21.08.2006, 18:12 ) Czyli ... 21.08.2006, 19:38:06
Ludvik CytatOk - zgadza się. Ale skąd wiesz, że metoda do... 21.08.2006, 19:46:59
J4r0d Cytat(Ludvik @ 21.08.2006, 18:46 ) (..)a ... 21.08.2006, 21:11:39 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 17:11 |