![[PHP] Toán tử <=> trong PHP](https://i.ibb.co/k2KK9p6W/php7.png)
Toán tử <=> trong PHP được gọi là toán tử tàu vũ trụ hoặc toán tử so sánh ba chiều (spaceship operator or three-way comparison operator). Nó được giới thiệu trong PHP 7 và cung cấp một cách ngắn gọn để so sánh hai biểu thức
Cách thức hoạt động:
Toán tử tàu vũ trụ so sánh hai toán hạng ( $a và $b) và trả về một giá trị số nguyên dựa trên mối quan hệ của chúng:
- return 0 : nếu $a bằng $b
- return -1 : nếu $a nhỏ hơn $b
- return 1 : nếu $a lớn hơn $b
Ví dụ:
- Mã: Chọn tất cả
<?php
echo 1 <=> 1; // Output: 0 (1 is equal to 1)
echo 1 <=> 2; // Output: -1 (1 is less than 2)
echo 2 <=> 1; // Output: 1 (2 is greater than 1)
echo "apple" <=> "banana"; // Output: -1 (lexicographically, "apple" is less than "banana")
echo "banana" <=> "apple"; // Output: 1 (lexicographically, "banana" is greater than "apple")
echo "apple" <=> "apple"; // Output: 0 (lexicographically, "apple" is equal to "apple")
?>
Các trường hợp sử dụng:
Toán tử spaceship đặc biệt hữu ích trong các hàm sắp xếp, chẳng hạn như usort() khi cần gọi lại so sánh. Nó đơn giản hóa logic cần thiết để xác định các quy tắc sắp xếp tùy chỉnh
- Mã: Chọn tất cả
<?php
$numbers = [3, 1, 4, 1, 5, 9];
// Sort in ascending order
usort($numbers, function ($a, $b) {
return $a <=> $b;
});
print_r($numbers); // Output: [1, 1, 3, 4, 5, 9]
// Sort in descending order
usort($numbers, function ($a, $b) {
return $b <=> $a; // Invert the comparison
});
print_r($numbers); // Output: [9, 5, 4, 3, 1, 1]
?>

