Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%)
|
Witam,
Przypadkowo wpadłem na pewne rozwiązanie które ułatwi mi pracę, aczkolwiek nie wiem czy nie jest to po prostu bugiem w PHP i z czasem mój skrypt przez to może nie działać. Otóż mam sobie 2 klasy:
Wynikiem tego kodu jest: Kod object(B)#1 (1) { ["zmienna"]=> NULL } Jak widać $this w klasie A zawiera obiekt z którego metoda test została wykonana - czyli B - czy jest to normalne zjawisko? (IMG:style_emoticons/default/smile.gif) Proszę o wytłumaczenie bo w manualu nic na ten temat nie znalazłem. Pozdrawiam. EDIT: Proszę o przeniesienie na podforum o obiektówce - dopiero teraz zobaczyłem że instnieje takie forum (IMG:style_emoticons/default/smile.gif) Ten post edytował hausner15 5.12.2010, 15:33:14 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%)
|
Misie kolorowe....
Jeżeli funkcja jest statyczna to nie ma $this! jest self!
Toż to podstawy programowania są - druga kartka książek o obiektowości. Innymi słowy, wcale nie wykosałeś test() w klasie A, ale PHP w swojej jak to już napisał niżej Crozin, wywołał ją inline w klasie B, zatem to jest tylko i wyłącznie Twój błąd przy wykonaniu funkcji nie stetycznej jako statyczną - Strict Standards (co również jest napisane w dokumentacji) wywołuje wtedy taką metodę inline. czyli tak jakby była w tym miejscu, a nie w innej klasie. To żaden błąd, ani feature ;-) Ten post edytował Quadina 5.12.2010, 15:53:21 |
|
|
|
hausner15 $this w zwykłej metodzie wywoływanej statycznie 5.12.2010, 15:29:05
Mephistofeles A::test() to wywołanie statyczne, więc jest do jak... 5.12.2010, 15:35:28
hausner15 Tak wiem, jak poprzedzę słowem static to wtedy prz... 5.12.2010, 15:38:20
Crozin Zacznijmy od tego, że kod ten wywala błąd:CytatStr... 5.12.2010, 15:47:04
hausner15 Crozin to ciekawe bo u mnie ten kod jak najbardzie... 5.12.2010, 16:05:27
Crozin CytatCrozin to ciekawe bo u mnie ten kod jak najba... 5.12.2010, 16:12:20 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 12:11 |