Nuancer ved konvertering til streng i PHP
I den forrige lektion lærte vi at lægge tal sammen som strenge. Ved sådan addition er der dog nuancer, når der lægges ikke variable sammen, men umiddelbart tal.
Faktum er, at punktummet ikke kun bruges til at lægge strenge sammen, men også til at adskille decimaldelen fra heltalsdelen.
Hvis der sættes mellemrum omkring punktummet, vil der ikke være problemer:
<?php
echo 1 . 2; // vil udskrive '12'
?>
Hvis der fjernes mellemrum omkring punktummet, får vi en brøkdel og ikke strengsammensætning:
<?php
echo 1.2; // vil udskrive 1.2
?>
På grund af sådanne nuancer kan man nemt få en fejl, hvis der på den ene side af punktummet sættes et mellemrum, og på den anden - ikke:
<?php
echo 1. 2; // vil give en fejl
?>
Med variable vil dette problem dog ikke opstå:
<?php
$a = 1;
$b = 2;
echo $a.$b; // vil udskrive '12', og ikke en fejl
?>
Forfatteren af koden ønskede at lægge
tallene 3 og 4
sammen som strenge:
<?php
echo 3.4;
?>
Koden fungerer dog ikke korrekt. Ret forfatterens fejl i koden.