ความละเอียดอ่อนของการแปลงเป็นสตริงใน PHP
ในบทเรียนที่ผ่านมาเราได้เรียนรู้ การบวกตัวเลขเป็นสตริง อย่างไรก็ตาม การบวกแบบนั้นมีรายละเอียดปลีกย่อย เมื่อไม่ได้บวกตัวแปร แต่บวกตัวเลขโดยตรง
ประเด็นคือว่า จุด (.) ไม่ได้ถูกใช้เพียง สำหรับการเชื่อมสตริงเท่านั้น แต่ยังใช้สำหรับ แยกส่วนทศนิยมออกจากจำนวนเต็มอีกด้วย
หากใส่ช่องว่างรอบจุด ก็จะไม่มีปัญหา:
<?php
echo 1 . 2; // จะได้ '12'
?>
แต่ถ้าเอาช่องว่างรอบจุดออก เราจะได้เลขทศนิยม ไม่ใช่การเชื่อมสตริง:
<?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;
?>
อย่างไรก็ตาม โค้ดทำงานไม่ถูกต้อง โปรดแก้ไขข้อผิดพลาดของผู้เขียนโค้ด