PHP:n merkkijonoksi muuntamisen vivahteet
Edellisellä oppitunnilla opimme laskemaan numerot yhteen merkkijonoina. Tällaisessa yhteenlaskussa on kuitenkin vivahteita, kun lasketaan yhteen ei muuttujia, vaan välittömästi numeroita.
Asia on siinä, että pistettä käytetään ei vain merkkijonojen yhdistämiseen, vaan myös desimaaliosan erottamiseen kokonaisosasta.
Jos pisteen ympärille laitetaan välilyönnit, ongelmia ei tule:
<?php
echo 1 . 2; // tulostaa '12'
?>
Mutta jos välilyönnit pisteen ympäriltä poistetaan, saamme desimaaliluvun, emmekä merkkijonojen yhteenlaskua:
<?php
echo 1.2; // tulostaa 1.2
?>
Tällaisten vivahteiden vuoksi virhe on helppo saada, jos toiselle puolelle pistettä laitetaan välilyönti ja toiselle - ei:
<?php
echo 1. 2; // antaa virheen
?>
Muuttujilla ei kuitenkaan ole tällaista ongelmaa:
<?php
$a = 1;
$b = 2;
echo $a.$b; // tulostaa '12', eikä virhettä
?>
Koodin kirjoittaja halusi laskea yhteen
luvut 3 ja 4
merkkijonoina:
<?php
echo 3.4;
?>
Koodi ei kuitenkaan toimi oikein. Korjaa koodin kirjoittajan virhe.