Automaattinen tyyppimuunnos PHP:ssä
Kuten jo tiedät, PHP:ssä merkkijonot tulee laittaa lainausmerkkeihin. Voi käydä niin, että kaikki merkkijonon merkit ovat numeroita. Tässä tapauksessa, jos numeroista koostuvalle merkkijonolle suoritetaan jokin matemaattinen operaatio - tämä operaatio suoritetaan kuin meillä todella olisi lukuja, eivätkä merkkijonot:
<?php
echo '1' + '2'; // tulostaa 3
?>
Tässä tapauksessa PHP näkee, että yritämme suorittaa merkkijonoille kelpaamattoman, mutta numeroille sallitun operaation. Se näkee myös, että käytännössä merkkijonot ovat numeroita lainausmerkeissä. Siksi PHP suorittaa automaattisesti muunnoksen näistä merkkijonoista numeroiksi ja suorittaa vastaavan matemaattisen operaation niille.
Vastaavasti tapahtuu merkkijonon, joka sisältää numeroita, ja tavallisen luvun yhteenlasku:
<?php
echo '1' + 2; // tulostaa 3
?>
Sillä ei ole väliä, missä järjestyksessä yhteenlasku suoritetaan:
<?php
echo 1 + '2'; // tulostaa 3
?>
Kaikki edellä mainittu toimii vastaavalla tavalla myös muuttujille:
<?php
$a = '1';
$b = '2';
echo $a + $b; // tulostaa 3
?>
Määritä, mitä ruudulle tulostetaan ajamatta koodia:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>