Αποχρώσεις μετατροπής σε συμβολοσειρά στην PHP
Στο προηγούμενο μάθημα μάθαμε να προσθέτουμε αριθμούς ως συμβολοσειρές. Σε μια τέτοια πρόσθεση, ωστόσο, υπάρχουν αποχρώσεις, όταν δεν προσθέτουμε μεταβλητές, αλλά αμέσως αριθμούς.
Το θέμα είναι ότι η τελεία χρησιμοποιείται όχι μόνο για τη concatenation συμβολοσειρών, αλλά και για τον διαχωρισμό του κλασματικού μέρους από το ακέραιο.
Εάν βάλουμε κενά γύρω από την τελεία, τότε δεν θα υπάρχουν προβλήματα:
<?php
echo 1 . 2; // θα εκτυπώσει '12'
?>
Αν αφαιρέσουμε τα κενά γύρω από την τελεία, τότε θα πάρουμε έναν δεκαδικό αριθμό, και όχι concatenation συμβολοσειρών:
<?php
echo 1.2; // θα εκτυπώσει 1.2
?>
Λόγω τέτοιων αποχρώσεων, μπορεί κανείς εύκολα να πάρει ένα σφάλμα, εάν στη μία πλευρά της τελείας βάλει κενό και στην άλλη - όχι:
<?php
echo 1. 2; // θα δώσει σφάλμα
?>
Με μεταβλητές, ωστόσο, δεν υπάρχει τέτοιο πρόβλημα:
<?php
$a = 1;
$b = 2;
echo $a.$b; // θα εκτυπώσει '12', και όχι σφάλμα
?>
Ο συγγραφέας του κώδικα ήθελε να προσθέσει
τους αριθμούς 3 και 4
ως συμβολοσειρές:
<?php
echo 3.4;
?>
Ο κώδικας, ωστόσο, δεν λειτουργεί σωστά. Διορθώστε το λάθος του συγγραφέα του κώδικα.