![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
witajcie, może jestem durny, ale przewaliłem manual we wszystkie strony i nie znalazłem uzasadnienia do poprawności poniższej konstrukcji w PHP5, a jednak ona działa:
a jeżeli to jest z jakichś dziwnych powodów normalne w PHP - to czy można jakoś ten mechanizm wyłączyć... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że to zachowanie jest całkowicie normalne dla PHP jako języka, w którym nie trzeba deklarować zmiennych wprost etc. I skoro to samo odnosi się do zmiennych, więc naturalne jest, że tak samo działa dla właściwości obiektu. W obu przypadkach PHP wyrzuca też błędy E_NOTICE (odpowiednio Undefined variable i Undefined property), co należy interpretować tak, że "pozwalamy tak robić, ale nie polecamy".
Co do przykładu LBO, to rzeczywiście takie zachowanie wydaje się trochę dziwne, ale chyba zostało pozostawione bardziej ze względu backward compatibilty, skoro obecnie w php5 wyrzuca Strict standards: Creating default object from empty value. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 23:40 |