Nyanser av konvertering till sträng i PHP
I föregående lektion lärde vi oss att lägga ihop tal som strängar. Vid sådan addition finns det dock nyanser, när det inte är variabler som adderas, utan direkt tal.
Saken är att punkten används inte bara för strängkonkatenering, utan även för att separera decimaldelen från heltalsdelen.
Om man sätter mellanslag runt punkten, kommer det inte att bli några problem:
<?php
echo 1 . 2; // skriver ut '12'
?>
Men om man tar bort mellanslagen runt punkten, får vi ett decimaltal, inte strängkonkatenering:
<?php
echo 1.2; // skriver ut 1.2
?>
På grund av sådana nyanser kan man lätt få ett fel om man sätter ett mellanslag på ena sidan om punkten och inte på den andra:
<?php
echo 1. 2; // ger ett fel
?>
Med variabler kommer detta problem dock inte att uppstå:
<?php
$a = 1;
$b = 2;
echo $a.$b; // skriver ut '12', och inte ett fel
?>
Kodens författare ville lägga ihop
talen 3 och 4
som strängar:
<?php
echo 3.4;
?>
Koden fungerar dock inte korrekt. Rätta författarens fel i koden.