ฟังก์ชัน spl_autoload_unregister

ฟังก์ชัน spl_autoload_unregister ช่วยให้ลบฟังก์ชันออโต้โหลดที่ลงทะเบียนไว้ก่อนหน้านี้ออกจากสแต็ก SPL ได้ โดยรับพารามิเตอร์เป็น callback-ฟังก์ชันที่ต้องการลบออกจากรายการออโต้โหลดเดอร์

ไวยากรณ์

phpspl_autoload_unregister(callable $autoload_function);

ตัวอย่าง

มาลองลงทะเบียนแล้วลบออโต้โหลดเดอร์กัน:

php<?php
  function my_autoload($class) {
    include 'classes/' . $class . '.php';
  }

  spl_autoload_register('my_autoload');
  spl_autoload_unregister('my_autoload');
?>

ตอนนี้ฟังก์ชัน my_autoload จะไม่ถูกเรียกอีกต่อไปเมื่อพยายามโหลดคลาสที่ยังไม่ได้กำหนด

ตัวอย่าง

ตรวจสอบความสำเร็จของการลบออโต้โหลดเดอร์:

php<?php
  function autoload_one($class) {
    echo "Trying to load $class\n";
  }

  spl_autoload_register('autoload_one');
  $res = spl_autoload_unregister('autoload_one');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phptrue

ตัวอย่าง

พยายามลบออโต้โหลดเดอร์ที่ไม่มีอยู่:

php<?php
  $res = spl_autoload_unregister('nonexistent_function');
  var_dump($res);
?>

ผลลัพธ์จากการรันโค้ด:

phpfalse

ดูเพิ่มเติม

  • ฟังก์ชัน spl_autoload_register,
    ซึ่งใช้ลงทะเบียนออโต้โหลดเดอร์
  • ฟังก์ชัน spl_autoload_functions,
    ซึ่งส่งคืนออโต้โหลดเดอร์ทั้งหมด
  • ฟังก์ชัน spl_autoload_call,
    ซึ่งเรียกใช้ออโต้โหลดเดอร์