![]() |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
Nový typ
(vpravo)-> Původní typ (dole) |
String |
Integer |
Float |
Boolean |
String |
-- |
Začíná-li číslem toto číslo, jinak nula. Když neobsahuje '.', 'e', nebo 'E' | Začíná-li číslem toto číslo, jinak nula. Když obsahuje '.', 'e', nebo 'E' | "" a "0"=false,
ostatní True |
Integer |
Převede na řetězec |
-- |
Není problém |
0=False, ostatní True |
Float |
Převede na řetězec |
První integer směrem
k nule |
-- |
0.0=False, ostatní
True |
Boolean |
false="" true="1" |
false=0 true=1 |
false=0.0 true=1.0 |
-- |
Z tabulky je vidět, že to většinou je intuitivní.
Ně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:
<?
$muj_float=3.5;
echo "Typ proměnné muj_float byl
<B>".gettype($muj_float)."</B>";
echo " a hodnota byla <B>".$muj_float."</B>.<BR>\n";
echo "Na řetězec ->".(string)$muj_float."<BR>\n";
echo "Na celé číslo ->".(int)$muj_float."<BR>\n";
echo "Na boolean ->".(boolean)$muj_float."<BR>\n";
echo "Po všech těch změnách je ale typ
proměnné stále <B>".gettype($muj_float)."</B> a hodnota <B>".$muj_float."</B>.<BR>\n";
?>
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.
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.
|
||
KOMENTARZE
Nie ma komentarzy dla tej pozycji. |
||
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
1. |
Pacman linux Download: 5093x |
2. |
FreeBSD Download: 9307x |
3. |
PCLinuxOS-2010 Download: 8795x |
4. |
alcolix Download: 11188x |
5. |
Onebase Linux Download: 9908x |
6. |
Novell Linux Desktop Download: 0x |
7. |
KateOS Download: 6458x |
1. |
xinetd Download: 2619x |
2. |
RDGS Download: 937x |
3. |
spkg Download: 5243x |
4. |
LinPacker Download: 10385x |
5. |
VFU File Manager Download: 3394x |
6. |
LeftHand Mała Księgowość Download: 7482x |
7. |
MISU pyFotoResize Download: 3086x |
8. |
Lefthand CRM Download: 3755x |
9. |
MetadataExtractor Download: 0x |
10. |
RCP100 Download: 3371x |
11. |
Predaj softveru Download: 0x |
12. |
MSH Free Autoresponder Download: 0x |