|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
PHP (9) - Přetypování proměnnýchPřetypování proměnných v PHP - požehnání nebo prokletí?
V našem seriálu jsme již uvedli, že PHP nevyžaduje definici proměnné před jejím použitím. Typ proměnné je v zásadě určen tím, co do ní vložíme. Co když ale výsledkem výrazu bude v PHP něco, co má jiný datový typ? Například, co se stane, když budeme dělit dvě celá čísla? Odpověď je - PHP se pokusí provést tzv. přetypování. Přetypování je změna typu proměnné během provádění programu. Připomeňme ještě na úvod, že proměnné v PHP mohou být čtyř základních typů: Integer, Float, Boolean a String. S přetypováním může být legrace. Především - přetypovat proměnnou můžeme sami. Slouží k tomu příkaz settype, který nenávratně změní typ proměnné na jiný. Další důležitá informace je ta, že můžeme kdykoli zjistit typ proměnné pomocí funkce gettype. Tyto věci ilustrujme na příkladu: <? Kód je to trošku delší (zvykejte si), takže něco komentářů. Nejprve jsme si vytvořili čtyři proměnné a naplnili jsme je takovými hodnotami, že reprezentují 4 základní datové typy. Potom děláme čtyřikrát totéž - nejprve vypíšeme "starý" typ a hodnotu proměnné pomocí gettype, pak ji přetypujeme a vypíšeme typ a hodnotu novou. Další věc, kterou byste si měli uvědomit je ta, že PHP může přetypovat samo. Zvažme následující situaci: <? Tady jsme pětku dělili dvojkou; což vedlo k tomu, že z výsledku, a
tudíž ze samotné proměnné $cislo se stal typ float. Přetypování se řídí několika pravidly, které jsem se pokusil shrnout v následující tabulce:
Z tabulky je vidět, že to většinou je intuitivní. Související funkceNěkdy může být užitečné změnit typ proměnné jen na chvilku a pak ji zase používat starým způsobem. Toho dosáhneme tak, že před název proměnné napíšeme do závorky, jaký typ by v okamžiku vyhodnocení měla mít. Když si vypůjčíme část kódu z prvního příkladu a trochu to rozšíříme, bude: <? Kromě funkce gettype, která vrátí řetězec obsahující název typu
proměnné existuje ještě sada funkcí, které vrací TRUE v případě, že
proměnná je odpovídajícího typu. Existují tedy funkce is_bool,
is_integer,
is_string
a is_float. Poznámky k přetypování
Znám programy, které používají celkem zbytečně přetypování takových proměnných, které již daný typ mají. To může program poměrně dost zpomalit. Na druhou stranu by se mělo vzít v úvahu to, že PHP přetypovává poměrně ochotně - a to někdy vadí. Čili, cílem je najít kompromis.
|
Search Software
Search Google
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |