PHP Type Juggling – Giới thiệu về kiểu chuyển đổi trong PHP

PHP Type Juggling - Giới thiệu về kiểu chuyển đổi trong PHP

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.

Thành Nguyễn

Tôi là Thành, nên tôi đặt tên blog là Thành Nè, Thánh Né... là một coder cùi bắp (Code quèn). Chẳng giỏi viết lách, chỉ giỏi chém gió và có sở thích chia sẻ những kiến thức tôi đã từng...