Khi so sánh số trong PHP 8, sẽ dùng so sánh số. Ngược lại sẽ chuyển số thành chuỗi và dùng so sánh chuỗi.
Chuỗi có thể phân loại thành ba loại:
Chuỗi chỉ chứa số. Ví dụ: 1234 hoặc 1.24e1.
Chuỗi numeric dẫn đầu - Chuỗi bắt đầu bằng số nhưng theo sau là ký tự không phải số bao gồm khoảng trắng. Ví dụ: 12xyz hoặc "123".
Chuỗi non-numeric - Chuỗi không thể là số và cũng không phải numeric dẫn đầu.
Ví dụ - PHP 7
0 == 'foo' // PHP 7 trả về true.
Ví dụ - PHP 8
0 == 'foo' // PHP 8 trả về false.
Ví dụ - Chương trình PHP 8 dùng so sánh chuỗi-số hợp lý
<?php
$x = [
"1" => "first Integer",
"0123" => "The integer index with leading 0",
"12str" => "using leading numeric string",
" 1" => "using leading whitespace",
"2.2" => "using floating number",
];
print_r($x);
?>
Kết quả
Array (
[1] => first Integer
[0123] => The integer index with leading 0
[12str] => using leading numeric string
[ 1] => using leading whitespace
[2.2] => using floating number
)