Chuyển đổi kiểu tự động trong PHP
Như bạn đã biết, chuỗi trong PHP nên được đặt trong dấu ngoặc kép. Có thể xảy ra trường hợp, tất cả các ký tự của chuỗi đều là chữ số. Trong trường hợp này, nếu thực hiện một phép toán nào đó trên chuỗi có chữ số - phép toán đó sẽ được thực hiện như thể chúng ta thực sự có số, không phải là chuỗi:
<?php
echo '1' + '2'; // sẽ hiển thị 3
?>
Trong trường hợp này, PHP thấy rằng chúng ta đang cố gắng thực hiện một phép toán không hợp lệ cho chuỗi, nhưng hợp lệ cho số. Nó cũng thấy rằng thực tế chuỗi của chúng ta - là các số trong dấu ngoặc kép. Do đó PHP tự động thực hiện chuyển đổi các chuỗi này sang số và thực hiện phép toán toán học tương ứng trên chúng.
Tương tự, phép cộng chuỗi có chữ số và một số thông thường cũng sẽ xảy ra:
<?php
echo '1' + 2; // sẽ hiển thị 3
?>
Đồng thời, thứ tự thực hiện phép cộng sẽ không có ý nghĩa:
<?php
echo 1 + '2'; // sẽ hiển thị 3
?>
Tất cả những điều đã nói sẽ hoạt động tương tự cho các biến:
<?php
$a = '1';
$b = '2';
echo $a + $b; // sẽ hiển thị 3
?>
Không chạy code, hãy xác định điều gì sẽ được hiển thị trên màn hình:
<?php
$a = '1';
$b = '2';
echo $a + $b + '3';
?>