![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 30 Pomógł: 2 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Rozpocząłem niedawno naukę programowania w PHP i napotkałem problem, którego rozwiązania nie zdołałem znaleźć w żadnym posiadanym podręczniku ani znanym mi kursie internetowym. Wyjaśniam w czym rzecz.
Ćwiczyłem stosowanie operatorów na zmiennych. Kiedy doszedłem do etapu inkrementacji i dekrementacji napisałem sobie taki mały kawałek kodu:
Jako wartość zmiennej $_a wstawiałem początkowo liczby i wszystko ładnie działało, ale potem dla testu wstawiłem literę i okazało się, że nie działa dekrementacja tej wartości string. Oto co wyświetla się w przeglądarce: Cytat 1) zmienna typu string: z 2) zmienna typu string: aa 3) zmienna typu string: aa 4) zmienna typu string: ab 5) zmienna typu string: ab 6) zmienna typu string: ab 7) zmienna typu string: ab Zacząłem szukać odpowiedzi dlaczego i okazało się, że we wszystkich przykładach operacje są wykonywane wyłącznie na liczbach. Znajomy znajomego stwierdził coś takiego: Cytat trzeba by się wczytać, jak interpretuje php wartość 1 dla ciągu string - może to być kod znaku, albo jego index w tablicy znaków. ++ dodaje kolejny znak, -- nie odejmuje, bo wypada wartość mniejsza od 0 (a ma wartość 0 w tablicy znaków, -1 to nie ma znaku - więc się nie zmienia) ++ i -- nie wykonuje działań w zakresie liczb dodatnich, tylko całkowitych - więc 0 - 1 daje -1, a żaden znak nie ma takiego indeksu oczywiście, przy założeniu, że a ma indeks 0 ale wątpię, żeby ktoś się zastanawiał, aby na stringach odpowiednio jakieś operacje arytmetyczne przebiegały - skoro nie ma żadnej dokumentacji ... Sam nie wiem co o tym sądzić. Poza tym jeśli inkrementacja i dekrementacja służą do wykonywania operacji na liczbach, dlaczego inkrementacja działa na literach (zmiennych string). A jeśli można inkrementować literę to czemu niemożliwa jest jej dekrementacja? Błąd w samym php? Nie wierzę w to! Ten post edytował qpanas 13.05.2008, 21:47:49 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 04:57 |