Tóm tắt: trong bài hướng dẫn này, bạn sẽ tìm hiểu về kiểu chuyển đổi trong PHP và cách nó hoạt động.
Giới thiệu về kiểu chuyển đổi trong PHP Type Juggling
PHP là ngôn ngữ lập trình được gọi là dạng lỏng lẻo. Điều này có nghĩa là khi bạn định nghĩa một biến, bạn không cần phải khai báo một kiểu dữ liệu cho nó. Bên trong, PHP sẽ xác định kiểu dữ liệu dựa trên ngữ cảnh bạn sử dụng biến.
Ví dụ, nếu bạn gán một chuỗi cho biến, kiểu dữ liệu sẽ là chuỗi:
<?php $my_var = 'PHP'; // một chuỗi
Và nếu bạn gán một số nguyên cho cùng một biến, kiểu dữ liệu sẽ là số nguyên:
<?php $my_var = 'PHP'; // một chuỗi $my_var = 100; // một số nguyên
PHP có một tính năng gọi là kiểu chuyển đổi. Điều này có nghĩa là trong quá trình so sánh các biến có các kiểu dữ liệu khác nhau, PHP sẽ chuyển đổi chúng sang một kiểu dữ liệu chung có thể so sánh. Ví dụ:
<?php $qty = 20; if($qty == '20') { echo 'Equal'; }
Kết quả:
Equal
Do kiểu chuyển đổi, PHP chuyển đổi chuỗi '20'
thành một số nguyên (20) và so sánh với biến $qty
. Kết quả là true
. Do đó, bạn sẽ thấy thông báo Equal
trong kết quả.
Kiểu chuyển đổi cũng hoạt động trong các phép tính toán cho các biến có các kiểu dữ liệu khác nhau. Ví dụ sau miêu tả cách kiểu chuyển đổi hoạt động trong phép tính toán:
<?php $total = 100; $qty = "20"; $total = $total + $qty; echo $total; // 120
Kiểu dữ liệu của $total
là số nguyên, trong khi $qty
là một chuỗi. Để tính tổng, PHP trước tiên chuyển đổi giá trị của biến $qty thành một số nguyên. Kết quả là một số nguyên.
Consider the following example:
<?php $total = 100; $qty = "20 pieces"; $total = $total + $qty; echo $total; // 120
Trong ví dụ này, PHP chuyển đổi chuỗi “20 pieces” thành một số nguyên 20 trước khi tính tổng.
Tóm tắt
- PHP là ngôn ngữ lập trình dạng lỏng lẻo. PHP xác định kiểu dữ liệu của biến dựa trên giá trị => type Juggling.
- Khi so sánh giá trị của các kiểu dữ liệu khác nhau, PHP tự động chuyển đổi chúng sang cùng một kiểu dữ liệu có thể so sánh.