ความเท่ากันในแง่ของค่าและประเภทข้อมูลใน PHP
สมมติว่าคุณต้องการเปรียบเทียบในลักษณะที่ตัวเลข
ในเครื่องหมายคำพูดจะไม่เท่ากับตัวเลขเดียวกัน
ที่ไม่มีเครื่องหมายคำพูด พูดอีกนัยหนึ่งคือ คุณต้องการ
เปรียบเทียบในลักษณะที่การเปรียบเทียบไม่ใช่เพียง
ตามค่าเท่านั้น แต่ยังตามประเภทข้อมูลด้วย สำหรับการนี้
แทนที่จะใช้ตัวดำเนินการ == ควรใช้
ตัวดำเนินการ === การเปรียบเทียบด้วยตัวดำเนินการดังกล่าว
เรียกว่า การเปรียบเทียบแบบเข้มงวด
ดูตัวอย่าง:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // สิ่งนี้จะทำงาน เพราะค่าทั้งสองไม่เท่ากันตามประเภทข้อมูล
}
?>
แต่เมื่อเปรียบเทียบสตริงสองสตริง '3'
จะแสดงผล '+++' บนหน้าจอ:
<?php
if ('3' === '3') {
echo '+++'; // สิ่งนี้จะทำงาน
} else {
echo '---';
}
?>
เช่นเดียวกับการเปรียบเทียบตัวเลข:
<?php
if (3 === 3) {
echo '+++'; // สิ่งนี้จะทำงาน
} else {
echo '---';
}
?>
ความแตกต่างระหว่างตัวดำเนินการทั้งสองจะปรากฏชัด เมื่อค่าทั้งสองเหมือนกัน แต่ประเภทข้อมูลต่างกัน ในกรณีอื่นๆ ตัวดำเนินการเหล่านี้ทำงานเหมือนกัน ตัวอย่างเช่น เมื่อเปรียบเทียบตัวเลขต่างกัน แน่นอนว่าจะแสดงผล เครื่องหมายลบ:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // สิ่งนี้จะทำงาน
}
?>
ในปัจจุบัน ใน PHP เป็นที่ยอมรับโดยทั่วไปให้ใช้ การเปรียบเทียบแบบเข้มงวดทุกที่ ถือได้ว่าในกรณีนี้โค้ดมีโอกาสเกิดข้อผิดพลาด น้อยกว่า
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>