Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

ความแตกต่างระหว่าง gettype() ใน PHP และ get_debug_type() ใน PHP 8


ในเวอร์ชันก่อนหน้าของ PHP หากเราต้องการรับประเภทของตัวแปร เราเคยใช้ gettype() การทำงาน. ฟังก์ชันนี้จะคืนค่าชนิดของตัวแปรในสตริงที่กำหนดเอง ส่งคืนค่าที่เป็นไปได้ทั้งหมด เช่น จำนวนเต็ม สตริง อาร์เรย์ บูลีน คู่ ทรัพยากร NULL ประเภทที่ไม่รู้จัก ฯลฯ

อย่างไรก็ตาม มีปัญหาใน gettype การทำงาน. จะไม่ส่งคืนชื่อประเภทดั้งเดิมและที่คุ้นเคย คืนค่า double แทนที่จะเป็น float และ integer แทนที่จะเป็น int เป็นต้น

เพื่อแก้ปัญหานี้ PHP 8 จะใช้ get_debug_type ฟังก์ชัน

ฟังก์ชันget_debug_type()

ใน PHP 8 get_debug_type ฟังก์ชันส่งคืนตัวแปรประเภทเนทีฟที่แท้จริง ส่งกลับค่าทศนิยม int แทนที่จะเป็นสองเท่าและจำนวนเต็ม ฟังก์ชันนี้จะแก้ไขชื่อคลาสของอ็อบเจ็กต์โดยอัตโนมัติ

get_debug_type() ฟังก์ชันช่วยใน

  • การดีบัก

  • ตรรกะทางธุรกิจ

  • การรายงานข้อผิดพลาด

ตัวอย่าง:การใช้ฟังก์ชัน gettype() ใน PHP

<?php
   class Novel {}
   class Comments {}
   $novel = new Novel();
   if(! ($novel instanceof Comment)) {
      echo 'Expected ' . Comment::class . ' still got My' . (is_object($novel) ?
      get_class($novel) : gettype($novel));
   }
?>

ผลลัพธ์

Expected Comment still got MyNovel

ตัวอย่าง :การใช้ฟังก์ชัน get_debug_type() ใน PHP 8

<?php
   class Novel {}
   class Comments {}
   $novel = new Novel();
   if(! ($novel instanceof Comment)) {
      echo 'Expected '.Comment::class.' still got My'.get_debug_type($novel);
   }
?>

ผลลัพธ์

Expected Comment still got MyNovel