Zazwyczaj nie jest konieczne określenie typu zmiennej - PHP sam to ustala, zależnie
od kontekstu.
Przykład 2.6. Zmiana typu zmiennej
<?php $blah = "0"; // $blah jest ciągiem (ASCII 48) $blah++; // $blah jest ciągiem "1" (ASCII 49) $blah += 1; // $blah jest teraz wartością całkowitą (2) $blah = + 1.3; // $blah jest wartością rzeczywistą (1.3) $blah = 5 + "10 Malutkich Świnek"; // $blah jest wartością całkowitą (15) $blah = 5 + "10 Małych Świń"; // $blah jest wartością całkowitą (15) ?>
|
Podczas przypisywania zmiennej nowej wartości, poprzednia wartość jest oczywiście
zamazywana. W takim przypadku typ zmiennej ustalany jest od nowa.
Jeśli jednak zachodzi potrzeba zmiany typu lub PHP błędnie
rozpoznaje typ, to można tego dokonać za pomocą rzutowania (cast -
efekt jest jednorazowy) lub za pomocą funkcji settype (efekt
trwały).
Rzutowanie typów odbywa się przez podanie nowego typu w nawiasie przed
zmienną lub wartością, której typ chcemy zmienić.
Przykład 2.7. Rzutowanie typów
<?php $liczba_calkowita = 10; $liczba_rzeczywista = (real) $liczba_calkowita; ?>
|
Dozwolone typy rzutowań
-
(int), (integer) - rzutuj do typu całkowitego
-
(real), (double), (float) - rzutuj do typu rzeczywistego
-
(string) - rzutuj do ciągu
-
(array) - rzutuj do tablicy
-
(object) - rzutuj do obiektu
Drugim sposobem, trwałym, jest użycie funkcji
settype. Funkcja ta pobiera 2 argumenty.
Pierwszym jest nazwa zmiennej do ustalenia typu, a drugim ciąg
określający nowy typ zmiennej.
Dopuszczalne argumenty funkcji settype
-
"integer"
-
"double"
-
"string"
-
"array"
-
"object"
Funkcja zwraca wartość "true" gdy wszystko poszło pomyślnie. W przeciwnym razie
zwracana jest wartość "false".
Przykład 2.8. Przykład użycia funkcji settype
<?php $zmienna = 10.3; echo "$zmienna"; // Wyświetlona wartość to "10.3" settype($zmienna, "integer"); echo "$zmienna"; // Wyświetlona wartość to "10" ?>
|