PHP - typy danych
Konwersja do typu boolean |
Konwersja na typ całkowity |
Łańcuchy znaków |
Tablice |
Zwalnianie zasobów |
Typ NULL
PHP obsługuje osiem typów prostych. Cztery typy skalarne:
Dwa typy złożone:
Oraz dwa typy specjalne:
Typ danych zwykle nie jest ustalany przez programistę. Robi to PHP na podstawie kontekstu, w jakim zmienna jest używana. Aby sprawdzić typ i wartość konkretnego wyrażenia, należy użyć funkcji var_dump(). Aby mieć czytelną reprezentację typu dla potrzeb debugowania, należy użyć funkcji gettype(). Aby sprawdzić, czy zmienna jest jakiegoś konkretnego typu, nie używaj funkcji gettype(), tylko grupy funkcji is_jakiś_typ. Aby narzucić konwersję zmiennej do określonego typu, można albo rzutować zmienną, albo użyć funkcji settype(). W pewnych sytuacjach zmienne mogą się zachowywać różnie, w zależności od tego, jakiego typu są w danej chwili.
Konwersja do typu boolowskiego Aby jawnie skonwertować wartość na typ boolean, należy użyć rzutowania (bool) lub (boolean). Przy konwersji na typ boolean, poniższe wartości otrzymują wartość logiczną FALSE:
Każda inna wartość otrzymuje logiczną wartość TRUE (włączając w to identyfikatory zasobów).
Konwersja na liczby całkowite Do jawnej konwersji wartości na typ integer używa się operatora rzutowania (int) lub (integer). W większości przypadków jednak rzutowanie nie jest potrzebne, gdyż wartość zostanie skonwertowana automatycznie, o ile operator, funkcja lub struktura kontrolna wymaga argumentu typu integer.
Łańcuchy znaków (string) Typ string oznacza łańcuch znaków. W PHP znak jest tym sam co bajt, co oznacza, że jest możliwych 256 różnych znaków. PHP nie posiada żadnej wbudowanej obsługi Unikodu. Nie ma też ustalonej maksymalnej długości łańcuchów znaków obsługiwanych w PHP, więc nie ma powodu do obaw, że dany łańcuch jest zbyt długi. Łańcuch znaków można utworzyć na trzy sposoby:
Łańcuchy znaków łączy się za pomocą operatora '.' (kropka). Operator dodawania '+' nie wykonuje operacji łączenia łańcuchów. Konwersja łańcuchów znaków Jeśli łańcuch znaków jest konwertowany na postać liczbową zostanie skonwertowany do typu float, jeśli zawiera znaki ".", "e" lub "E". W przeciwnym razie zostanie skonwertowany do typu integer. Wartość liczbowa łańcucha znaków zależy od pierwszych znaków tego łańcucha. Jeśli łańcuch zaczyna się od poprawnej wartości liczbowej, wartość ta będzie używa przy konwersji. W przeciwnym razie zwrócona będzie wartość 0 (zero). Poprawna wartość liczbowa zaczyna się od opcjonalnego znaku, po którym znajduje się jedna, lub kilka cyfr (opcjonalnie kropka dziesiętna), po którym opcjonalnie znajduje się eksponent. Eksponent jest to znak "e" lub "E", po którym następuje jedna, lub więcej cyfr. Kiedy pierwszym wyrażeniem jest łańcuch znaków, typ zmiennej będzie zależał od drugiego wyrażenia. Np.: $x = 1 + "10.5"; // $x jest typu float (11.5) $x = 1 + "-1.3e3"; // $x jest typu float (-1299) $x = 1 + "bob-1.3e3"; // $x jest typu integer (1) $x = 1 + "bob3"; // $x jest typu integer (1) $x = 1 + "10 małych świnek"; // $x jest typu integer (11) $x = 1 + "10 malutkich świnek"; // $x jest typu integer (11) $x = "10.0 świnek " + 1; // $x jest typu integer (11) $x = "10.0 świnek " + 1.0; // $x jest typu float (11)
Tablice (array) Tablica w PHP jest obecnie uporządkowaną mapą. Mapa jest typem, który przyporządkowuje wartości do kluczy. Typ ten jest optymalizowany na wiele sposobów, więc można go używać jako typową tablicę, listę (wektorową), tablicę asocjacyjną (która jest jedną z implementacji mapy), słownik, kolekcję, stos, kolejkę, i temu podobne. Ponieważ wartością tablicy może być inna tablica PHP, można także łatwo symulować drzewa. Tablicę można utworzyć za pomocą funkcji array(). Jej argumentami są rozdzielone przecinkiem pary klucz => wartość. kluczem może być albo nieujemną liczbą całkowitą, albo łańcuchem znaków. Jeśli klucz jest nieujemną liczbą całkowitą, to zostanie zinterpretowany tak, jak jest (tzn. '8' będzie zinterpretowane jako 8, podczas gdy '08' będzie zinterpretowane jako '08'). Wartością może być cokolwiek. Jeśli pominiesz klucz, to jako klucz zostanie użyty najwyższy indeks całkowity + 1. Typ tablicowy w PHP jest bardzo różnorodny, co prezentują poniższe przykłady.
Zwalnianie zasobów Zasobów (resource) jest specjalną zmienną, przechowywującą odnośnik do zewnętrznego źródła zasobów. Identyfikatory zasobów są tworzone i wykorzystywane przez specjalne funkcje. Dzięki systemowi kontroli zasobów automatycznie wykrywana jest sytuacja, kiedy nie ma już odnośników do zasobu (tak jak w Javie). W takie sytuacji zasoby systemowe używane do tego zasobu zostają zwolnione przez destruktor zasobów. Dlatego nie jest konieczne, aby zwalniać pamięć ręcznie za pomocą funkcji typu free_result. Wyjątkiem są stałe połączenia z serwerami baz danych, które nie są niszczone przez destruktor zasobów.
Typ NULL (null) Specjalna wartość NULL oznacza, że zmienna nie przechowuje żadnej wartości. NULL jest jedyną możliwą wartością typu NULL. Wielkość liter słowa NULL nie ma znaczenia.
|