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