Kursy mojej produkcji
<?php
$liczba = 17.5; // Typ float
echo (int)$liczba; // Zwróć uwagę na ucięta wartość po rzutowaniu
?>
Zapis rzutowania zmiennej jest bardzo prosty. Najpierw w nawiasie piszemy typ docelowy, a następnie wrzucamy nazwę zmiennej.
<?php
$liczba = 17; // Typ integer
$wynik_1 = (float)$liczba; // Zmiana na liczbę zmiennoprzecinkową
$wynik_2 = (string)$liczba; // Zmiana na ciąg znaków
$wynik_3 = (bool)$liczba; // Zmiana na typ boolowski
$ciag_znakow = 'abcdefghij17xyz'; // Typ string
$wynik_4 = (int)$ciag_znakow; // Zmiana na liczbę całkowitą
$wynik_5 = (float)$ciag_znakow; // Zmiana na liczbę zmiennoprzecinkową
$wynik_6 = (bool)$ciag_znakow; // Zmiana na typ boolowski
echo $wynik_1;
?>
Powyższy kod pokazuje kilka kombinacji rzutowania. Aby sprawdzić wyniki wszystkich kombinacji będziecie musieli po uruchomieniu skryptu zmieniać numer echowanej zmiennej.
<?php
$ciag = '123test456';
echo (int)$ciag;
?>
Zwróćcie uwagę na to, że przy konwersji stringu na integer wybiera wartość, która jest liczba całkowitą, a resztę nie pasującą do wzorca po prostu ucina.
<?php
$zmienna = '123';
echo '$zmienna jest typu: '.gettype($zmienna).'<br />';
settype($zmienna, 'integer'); // Zmiana typu zmiennej
echo '$zmienna jest typu: '.gettype($zmienna);
?>
Oprócz funkcji settype() mamy jeszcze do dyspozycji kilka innych.
<?php
$zmienna = '-2';
$zmienna += 4; // $zmienna jest teraz typem całkowitym
$zmienna += 1.3; // $zmienna jest teraz typem zmiennoprzecinkowym
$zmienna = 17 + '10 małych myszek';// $zmienna jest teraz typem całkowitym
$zmienna += '10,5 orzeszków'; // $zmienna nadal jest typem całkowitym
$zmienna += '5.2 placka'; // $zmienna od teraz jest typem zmiennoprzecinkowym
?>
<?php
// Zmiana zmiennej na typ całkowity
$zmienna = (int)$zmienna;
$zmienna = (integer)$zmienna;
settype($zmienna, 'int');
settype($zmienna, 'integer');
$zmienna = intval($zmienna);
// Zmiana zmiennej na typ boolowski
$zmienna = (bool)$zmienna;
$zmienna = (boolean)$zmienna;
settype($zmienna, 'bool');
settype($zmienna, 'boolean');
// Zmiana zmiennej na typ zmiennoprzecinkowy
$zmienna = (float)$zmienna;
$zmienna = (double)$zmienna;
$zmienna = (real)$zmienna;
settype($zmienna, 'float');
settype($zmienna, 'double');
$zmienna = doubleval($zmienna);
$zmienna = floatval($zmienna);
// Zmiana zmiennej na typ string
$zmienna = (string)$zmienna;
settype($zmienna, 'string');
$zmienna = strval($zmienna);
// Zmiana zmiennej na typ tablicy
$zmienna = (array)$zmienna;
settype($zmienna, 'array');
// Zmiana zmiennej na typ obiektu
$zmienna = (object)$zmienna;
settype($zmienna, 'object');
// Zmiana zmiennej na typ NULL czyli pusty
$zmienna = (unset)$zmienna;
settype($zmienna, 'null');
$zmienna = null;
// Zmiana zmiennej na typ binarny
$zmienna = (binary)$zmienna; // Możliwość dostępna od PHP 5.2.1
?>