![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 4.01.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Robie sobie wykres odwiedzin i powstal taki problem. Czy da sie szybko (2-3 linijki) podając numer miesiąca i rok uzyskać całkowitą ilosć dni w tym miesiącu ?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://pl.php.net/manual/pl/language.types.array.php
Cytat Co wolno, a czego nie w tablicach?
Dlaczego zapis $foo[bar] jest niepoprawny? W starych skryptach można spotkać taką składnię: $foo[bar] = 'coś'; echo $foo[bar]; // itd. Ten zapis jest niepoprawny, ale działa. Dlaczego zatem jest niepoprawny? Powód jest to, co opisano w rozdziale składnia, że pomiędzy nawiasami kwadratowymi ('[' i ']') musi znajdować się wyrażenie. Oznacza to, że można używać czegoś takiego: echo $arr[ foo(true) ]; Jest to przykład użycia wartości zwracanej przez funkcję jako indeksu tablicy. php zna też stałe, więc można spotkać zastosowanie E_*. $opis_błędu[E_ERROR] = "Wystąpił poważny błąd"; $opis_błędu[E_WARNING] = "php wysłało ostrzeżenie"; $opis_błędu[E_NOTICE] = "To jest tylko nieformalna uwaga"; Proszę pamiętać, że E_ERROR jest także ważnym identyfikatorem, tak jak bar w pierwszym przykładzie. Ale ostatni przykład znaczy to samo co: $opis_błędu[1] = "Wystąpił poważny błąd"; $opis_błędu[2] = "php wysłało ostrzeżenie"; $opis_błędu[8] = "To jest tylko nieformalna uwaga"; ponieważ E_ERROR znaczy to samo co 1, itd. W takiem razie, jak to możliwe, że $foo[bar] działa? To działa, ponieważ bar, zgodnie z jego zapisem powinien być stałą. Jednakże w tym przypadku nie instnieje stała o nazwie bar. php teraz zakłada, że masz na myśli bar literalnie, czyli jako łańucuch "bar", tylko że zapomniałeś napisać cudzysłowów. Więc dlaczego tak jest źle? Kiedyś w przyszłości grupa php może chcieć dodać jeszcze jedną stałą lub słowo kluczowe i wtedy będziesz miał kłopot. Dla przykładu, obecnie już nie można używać słów empty i default, gdyż są to specjalne słowa kluczowe. Poza tym, jeśli dotąd argumenty nie przekonują cię: ta składnia jest po prostu odrzucona i kiedyś może przestać działać. Notatka: Po przełączeniu error_reporting na E_ALL, zobaczysz, że php generuje ostrzeżenie, kiedy tylko powyższa składnia zostanie użyta. Tak samo generowane będą ostrzeżenia odnośnie innych odrzuconych "udogodnień". (umieść w swoim skrypcie linię error_reporting(E_ALL)(IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 03:50 |