Automatická konverze typů v PHP
Jak již víte, řetězce v PHP se píší do uvozovek. Může se stát, že všechny znaky řetězce budou číslice. V tom případě, pokud nad řetězcem s číslicemi provedete nějakou matematickou operaci - tato operace bude provedena tak, jako bychom měli opravdu čísla, a ne řetězce:
<?php
echo '1' + '2'; // vypíše 3
?>
V tomto případě PHP vidí, že se snažíme provest nepovolenou operaci pro řetězce, ale povolenou pro čísla. Zároveň vidí, že naše řetězce jsou v podstatě čísla v uvozovkách. Proto PHP automaticky provede konverzi těchto řetězců na čísla a provede příslušnou matematickou operaci nad nimi.
Podobným způsobem proběhne součet řetězce s číslicemi a běžného čísla:
<?php
echo '1' + 2; // vypíše 3
?>
Při tom nebude záležet na pořadí sčítání:
<?php
echo 1 + '2'; // vypíše 3
?>
Vše řečené bude fungovat stejným způsobem i pro proměnné:
<?php
$a = '1';
$b = '2';
echo $a + $b; // vypíše 3
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>