ความเท่ากันในแง่ของค่าและประเภทข้อมูลใน PHP

สมมติว่าคุณต้องการเปรียบเทียบในลักษณะที่ตัวเลข ในเครื่องหมายคำพูดจะไม่เท่ากับตัวเลขเดียวกัน ที่ไม่มีเครื่องหมายคำพูด พูดอีกนัยหนึ่งคือ คุณต้องการ เปรียบเทียบในลักษณะที่การเปรียบเทียบไม่ใช่เพียง ตามค่าเท่านั้น แต่ยังตามประเภทข้อมูลด้วย สำหรับการนี้ แทนที่จะใช้ตัวดำเนินการ == ควรใช้ ตัวดำเนินการ === การเปรียบเทียบด้วยตัวดำเนินการดังกล่าว เรียกว่า การเปรียบเทียบแบบเข้มงวด

ดูตัวอย่าง:

php<?php
  if ('3' === 3) {
    echo '+++';
  } else {
    echo '---'; // สิ่งนี้จะทำงาน เพราะค่าทั้งสองไม่เท่ากันตามประเภทข้อมูล
  }
?>

แต่เมื่อเปรียบเทียบสตริงสองสตริง '3' จะแสดงผล '+++' บนหน้าจอ:

php<?php
  if ('3' === '3') {
    echo '+++'; // สิ่งนี้จะทำงาน
  } else {
    echo '---';
  }
?>

เช่นเดียวกับการเปรียบเทียบตัวเลข:

php<?php
  if (3 === 3) {
    echo '+++'; // สิ่งนี้จะทำงาน
  } else {
    echo '---';
  }
?>

ความแตกต่างระหว่างตัวดำเนินการทั้งสองจะปรากฏชัด เมื่อค่าทั้งสองเหมือนกัน แต่ประเภทข้อมูลต่างกัน ในกรณีอื่นๆ ตัวดำเนินการเหล่านี้ทำงานเหมือนกัน ตัวอย่างเช่น เมื่อเปรียบเทียบตัวเลขต่างกัน แน่นอนว่าจะแสดงผล เครื่องหมายลบ:

php<?php
  if (2 === 3) {
    echo '+++';
  } else {
    echo '---'; // สิ่งนี้จะทำงาน
  }
?>

ในปัจจุบัน ใน PHP เป็นที่ยอมรับโดยทั่วไปให้ใช้ การเปรียบเทียบแบบเข้มงวดทุกที่ ถือได้ว่าในกรณีนี้โค้ดมีโอกาสเกิดข้อผิดพลาด น้อยกว่า

Задание 1

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 == $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 2

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:

php<?php
  $test1 = '3';
  $test2 = '3';
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 3

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 == $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 4

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:

php<?php
  $test1 = 3;
  $test2 = '3';
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 5

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไร บนหน้าจอ:

php<?php
  $test1 = 3;
  $test2 = 3;
    
  if ($test1 === $test2) {
    echo '+++';
  } else {
    echo '---';
  }
?>