Typy danych

Submitted by Administrator on śr., 11/30/2016 - 21:09
Dane - Coopa.pl

W PHP rozróżnia się trzy typy danych, które można konwertować, zmieniać z jednego na drugi. Te typy danych to:

  • Typy proste (skalarne)

    • boolean

    • Jest to tryb logiczny, w którym występują dwie możliwe wartości tzn. fałsz (false), oraz prawda (true).
      Konwersja na boolean z typu:
      - integer: 0 => false
      - double: 0 => false
      - string: "" - pusta wartość => false
      - string: "0" => false
      - array (typ tablicowy): tablica o zerowej liczbie elementów => false
      - typ obiektowy: zerowa liczba elementów => false
      - obiekt Simple XML: złożony z pustych znaczników => false
      W innych przypadkach po konwersji na typ boolean, powinniśmy spodziewać się wartości true.

    • integer

    • Typ integer (int), może być jedynie liczbą całkowitą dodatnią lub ujemną. Jak wiadomo istnieją różne formaty liczb. Domyślnie obowiązuje system dziesiętny, możliwy jest również zapis ósemkowy (poprzedzony 0, szesnastkowy poprzedzony 0x lub 0X.
      Konwersja na integer z:
      - boolean: true => 1
      - boolean: false =>0
      - double: powstaje zaokrąglenie w dół liczby double do najbliższej liczby całkowitej
      - double: jeśli wartość liczby double wykracza poza zakres liczby integer ([32 bit] -2^31 do 2^31 -1 oraz [64 bit] -2^63 do 2^63 -1), to powstaje wartość nieokreślona.
      - string: dla ciągów znaków zaczynających się od liczby całkowitej, otrzymujemy wynik w postaci wartości z dopuszczalnego zakresu integer (np. 32, -128, 64abc), reprezentowanej przez ten ciąg
      - string: dla ciągów znaków zaczynających się od poprawnej liczby zmiennopozycyjnej (3.8, -2.4, 4,8e4), najpierw wykonywana jest konwersja do typu double (patrz dalej). Podobnie jest gdy przekroczony zostanie dopuszczalny zakres integer.
      - string: jeśli ciąg znaków nie zaczyna sie od prawidłowej liczby to otrzymujemy 0.
      Innych konwersji nie zdefiniowano!
      Aby przekonwertować pojedynczy znak na typ integer trzeba użyć funkcji ord lub chr.

    • double (float)

    • Dane typu double niekiedy oznaczane jako float reprezentują liczby zmiennopozycyjne. Podobnie jak integer, tu również istnieje największa możliwa wartość. Zależy ona od platformy sprzętowej i zazwyczaj wynosi 1.8e308.
      Co oznacza zapis 1e3? Jest to 1 pomnożone przez 10 do potęgi trzeciej, czyli wynikiem jest 1000. Podobnie 1.8e308, ale jak to nazwać tak wielką liczbę? Przeszukałem kilka stron i doszedłem do tego, że jest to Quincentillion :-)
      Konwersja na double z:
      W wypadku double, konwersja do tego typu danych następuje kilkustopniowo. Najpierw następuje zamiana do typu integer a dopiero później do double.
      Powyższe nie dotyczy konwersji z typu string, który jest wykonywana według trzech warunków:
      - Jeżel, ciąg znaków zaczyna się od prawidłowej liczby całkowitej o wartości nieprzekraczającej dopuszczalnej wartości maksymalnej typu integer to następuje konwersja do typu integer.
      - Jeżel, ciąg znaków zaczyna się od prawidłowej liczby zmiennopozycyjnej, lub całkowitej o wartości przekraczającej dopuszczalną wartość maksymalną typu integer, to wynikiem jest wartość reprezentowana przez ten ciąg.
      - W innym wypadku wynikiem jest 0.

    • string

    • W tym typie danych nie ma ograniczenia długości łańcucha znaków, są za to cztery sposoby utworzenia takiego łańcucha:
      - z użyciem znaków apostrofu 'Łańcuch znaków'
      - z użyciem cudzysłowu "Łańcuch znaków"
      - wykorzystując składnię heredoc
      - wykorzystując składnię nowdoc, która jest dostępna od wersji PHP 5.3.0
      Dwa ostatnie to materiał na wiele osobnych artykułów.

  • Typy złożone

    • tablicowe (array)

    • Tablice można tworzyć wpisując array() lub z nawiasami kwadratowymi przy zmiennych. Tego typu dane są przydatne do prezentacji lub wyciągania wybranych elementów tabeli w zależności od zadanych warunków. Nie zawsze zachodzi potrzeba korzystania z bazy SQL.
      Więcej pojawi się w osobnym artykule.

    • obiektowe

    • Typ obiektowy to kolejny obszerny temat, tutaj jedynie zasygnalizuje, że istnieje a w jego skład wchodzą klasy i obiekty.

  • Typy specjalne

    • resource

    • Od wersji PHP 4 umożliwiono korzystanie z typu danych resource, który przechowuje odniesienia do zasobów zewnętrznych np. do baz danych lub elementów systemu plików.
      Zasoby oraz zmienne typu resource są tworzone z użyciem funkcji specjalnych.

    • null

    • Ten typ danych informuje o tym, że zmienna nie ma zdefiniowanej wartości.
      Przykładowa zmienna dolar, nie przechowuje wartości $dolar = null;

 

 

 

Polski

Reklama