Automatyczna konwersja typów w PHP
Jak już wiesz, ciągi znaków w PHP należy umieszczać w cudzysłowie. Może się zdarzyć, że wszystkimi znakami ciągu będą cyfry. W tym przypadku, jeśli na ciągu znaków z cyframi wykonasz jakąkolwiek operację matematyczną - operacja ta zostanie wykonana tak, jakbyśmy faktycznie mieli liczby, a nie ciągi znaków:
<?php
echo '1' + '2'; // wyświetli 3
?>
W tym przypadku PHP widzi, że próbujemy wykonać niedozwoloną dla ciągów znaków, ale dozwoloną dla liczb operację. Widzi również, że faktycznie nasze ciągi znaków to liczby w cudzysłowiach. Dlatego PHP automatycznie wykonuje konwersję tych ciągów znaków na liczby i wykonuje odpowiednią operację matematyczną na nich.
W analogiczny sposób będzie przebiegać dodawanie ciągu znaków z cyframi i zwykłej liczby:
<?php
echo '1' + 2; // wyświetli 3
?>
Nie będzie przy tym miało znaczenia, w jakiej kolejności wykonywać dodawanie:
<?php
echo 1 + '2'; // wyświetli 3
?>
Wszystko powyższe będzie działać w analogiczny sposób również dla zmiennych:
<?php
$a = '1';
$b = '2';
echo $a + $b; // wyświetli 3
?>
Bez uruchamiania kodu, określ, co zostanie wyświetlone na ekranie:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>