Skip to content


=== ไม่ใช่ “เท่ากัน” แต่ “เหมือนกัน”…อะไรเนี่ย!!

วันนี้ผมจะแนะนำให้รู้จักกับการเปรียบเทียบด้วยเครื่องหมาย = ในอีกรูปแบบหนึ่ง โดยปกติแล้ว ทั้งใน PHP และ Javascript เวลาเราต้องการเปรียบเทียบค่าของตัวแปร 2 ตัว เราจะใช้เครื่องหมาย == (= ติดกัน 2 ตัว) ยกตัวอย่างเช่น

// PHP

// ตัวอย่างที่ 1
$a = 1;
$b = 1;
if ($a == $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a มีค่าเท่ากับ $b
    echo "#1: a is equal to b\n";
}

// ตัวอย่างที่ 2
$a = 1;
$b = "1";
if ($a == $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a มีค่าเท่ากับ $b
    echo "#2: a is equal to b\n";
}

// ตัวอย่างที่ 3
$a = 0;
$b = false;
if ($a == $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a มีค่าเท่ากับ $b
    echo "#3: a is equal to b\n";
}

ผลลัพธ์

#1: a is equal to b
#2: a is equal to b
#3: a is equal to b


การเปรียบเทียบแบบนี้ ถือเป็นการเปรียบเทียบค่ากันระหว่าง operand 2 ตัว โดยจะเปรียบเทียบเฉพาะค่าของมันเท่านั้น เมื่อผลของการเปรียบเทียบมีค่าเป็น true นั่นคือ operand ทั้งสองตัวนั้น “เท่ากัน” (equal) ซึ่งจะแตกต่างจาก ===

=== เป็นการเปรียบเทียบที่จะเปรียบเทียบทั้งค่า และชนิดของ operand ทั้งสองตัวนั้นด้วย เมื่อผลจากการเปรียบเทียบด้วย === มีค่าเป็น true เราถือว่า operand ทั้ง 2 ตัวนั้น “เหมือนกัน” (identical) นั่นเอง

ลองมาดูตัวอย่างกัน

// PHP

// ตัวอย่างที่ 4
$a = 1;
$b = 1;
if ($a === $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a เหมือนกับ $b
    echo "#4: a is identical to b\n";
}

// ตัวอย่างที่ 5
$a = 1;
$b = "1";
if ($a === $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a เหมือนกับ $b
    echo "#5: a is identical to b\n";
}

// ตัวอย่างที่ 6
$a = 0;
$b = false;
if ($a === $b)
{
    // บล็อกนี้จะถูกทำเมื่อ $a เหมือนกับ $b
    echo "#6: a is identical to b\n";
}

ผลลัพธ์

#4: a is identical to b

หมายเหตุ

  1. สำหรับการทำให้เป็น negative ด้วย ! นั้น เครื่องหมาย == เราจะใช้ != ในการเปรียบเทียบ “ไม่เท่ากัน” และ เครื่องหมาย === เราจะใช้ !== ในการเปรียบเทียบ “ไม่เหมือนกัน”
  2. เครื่องหมาย === และ !== สามารถใช้ได้ทั้ง PHP และ Javascript
  3. การใช้เครื่องหมาย = เพียงตัวเดียวนั้น หมายถึงการ “กำหนดค่าให้” (assign) ไม่ใช่การเปรียบเทียบ

อ้างอิง

Share

Posted in JavaScript, PHP.

Tagged with , , , , , .


2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. แอร์ says

    ยัังงงอยู่แต่ก็ขอบคุณค่ะ

  2. watch99 says

    สรุปใช้ไดทั้งสองแบบ == หรือ === ก็ได้
    คนเราคิดได้ไงว่ะเนี้ย



Some HTML is OK

or, reply to this post via trackback.

*