ฟังก์ชัน spl_autoload_call

ฟังก์ชัน spl_autoload_call จะเรียกใช้ออโต้โหลดเดอร์ทั้งหมดที่ลงทะเบียนไว้เพื่อพยายามโหลดคลาสที่ระบุ ต่างจาก spl_autoload_register ซึ่งทำหน้าที่ลงทะเบียนออโต้โหลดเดอร์ ฟังก์ชันนี้จะทำการเรียกใช้ออโต้โหลดเดอร์โดยตรง พารามิเตอร์เดียวคือชื่อคลาสที่ต้องการโหลด

ไวยากรณ์

phpspl_autoload_call(string $class_name): void

ตัวอย่าง

ลองโหลดคลาสที่ไม่มีอยู่จริงโดยไม่มีออโต้โหลดเดอร์:

php<?php
spl_autoload_call('NonExistentClass');
?>

ผลลัพธ์การทำงานโค้ด (เกิดข้อผิดพลาด หากไม่มีออโต้โหลดเดอร์ที่ลงทะเบียน):

php// จะไม่มีอะไรเกิดขึ้น ถ้าไม่มีออโต้โหลดเดอร์ที่ลงทะเบียนไว้

ตัวอย่าง

สร้างออโต้โหลดเดอร์ง่ายๆ และลองโหลดคลาส:

php<?php
spl_autoload_register(function($class) {
  echo "กำลังพยายามโหลดคลาส: $class\n";
});

spl_autoload_call('TestClass');
?>

ผลลัพธ์การทำงานโค้ด:

phpกำลังพยายามโหลดคลาส: TestClass

ตัวอย่าง

ทดสอบการทำงานกับออโต้โหลดเดอร์หลายตัว:

php<?php
spl_autoload_register(function($class) {
  echo "ออโต้โหลดเดอร์ตัวแรก: $class\n";
});

spl_autoload_register(function($class) {
  echo "ออโต้โหลดเดอร์ตัวที่สอง: $class\n";
});

spl_autoload_call('MyClass');
?>

ผลลัพธ์การทำงานโค้ด:

phpออโต้โหลดเดอร์ตัวแรก: MyClass
ออโต้โหลดเดอร์ตัวที่สอง: MyClass

ดูเพิ่มเติม

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