เมื่อเราเปรียบเทียบตัวเลขใน PHP 8 จะใช้การเปรียบเทียบตัวเลข มิฉะนั้นจะแปลงตัวเลขเป็นสตริงและจะใช้การเปรียบเทียบสตริง
สตริงสามารถจำแนกได้สามวิธี -
-
สตริงที่มีเฉพาะตัวเลข ตัวอย่าง – 1234 หรือ 1.24e1.
-
สตริงตัวเลขนำหน้า - สตริงนำหน้าเริ่มต้นด้วยสตริงตัวเลข แต่ควรตามด้วยอักขระที่ไม่ใช่ตัวเลขรวมถึงช่องว่างสีขาว ตัวอย่าง − 12xyz หรือ “123”
-
สตริงที่ไม่ใช่ตัวเลข - สตริงที่ไม่สามารถเป็นตัวเลขและเป็นสตริงตัวเลขที่ไม่นำหน้าได้
Example − PHP 7
0=='foo' // PHP 7 will return true.
Example − PHP 8
0 =='foo' // PHP 8 will return false.
ตัวอย่าง − โปรแกรม PHP 8 ที่ใช้สตริง Saner กับการเปรียบเทียบตัวเลข
<?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); ?>
ผลลัพธ์
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 )