Αυτόματη μετατροπή τύπων δεδομένων στην PHP
Όπως ήδη γνωρίζετε, οι συμβολοσειρές στην PHP πρέπει να περικλείονται σε εισαγωγικά. Μπορεί να συμβεί όλα τα σύμβολα της συμβολοσειράς να είναι ψηφία. Σε αυτήν την περίπτωση, αν εκτελέσουμε μια μαθηματική πράξη πάνω στη συμβολοσειρά με τα ψηφία - αυτή η πράξη θα εκτελεστεί σαν να έχουμε πραγματικά αριθμούς, και όχι συμβολοσειρές:
<?php
echo '1' + '2'; // θα εμφανίσει 3
?>
Σε αυτήν την περίπτωση, η PHP βλέπει ότι προσπαθούμε να εκτελέσουμε μια μη επιτρεπτή για συμβολοσειρές, αλλά επιτρεπτή για αριθμούς πράξη. Βλέπει επίσης ότι στην πραγματικότητα οι συμβολοσειρές μας - είναι αριθμοί σε εισαγωγικά. Επομένως η PHP εκτελεί αυτόματα τη μετατροπή αυτών των συμβολοσειρών σε αριθμούς και εκτελεί την αντίστοιχη μαθηματική πράξη πάνω τους.
Με παρόμοιο τρόπο θα συμβεί η πρόσθεση μιας συμβολοσειράς με ψηφία και ενός κανονικού αριθμού:
<?php
echo '1' + 2; // θα εμφανίσει 3
?>
Σε αυτήν την περίπτωση δεν θα έχει σημασία, με ποια σειρά εκτελείται η πρόσθεση:
<?php
echo 1 + '2'; // θα εμφανίσει 3
?>
Όλα όσα ειπώθηκαν θα λειτουργούν με παρόμοιο τρόπο και για μεταβλητές:
<?php
$a = '1';
$b = '2';
echo $a + $b; // θα εμφανίσει 3
?>
Χωρίς να εκτελέσετε τον κώδικα, προσδιορίστε τι θα εμφανιστεί στην οθόνη:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>