ฟังก์ชัน spl_autoload_call
ฟังก์ชัน spl_autoload_call จะเรียกใช้ออโต้โหลดเดอร์ทั้งหมดที่ลงทะเบียนไว้เพื่อพยายามโหลดคลาสที่ระบุ ต่างจาก spl_autoload_register ซึ่งทำหน้าที่ลงทะเบียนออโต้โหลดเดอร์ ฟังก์ชันนี้จะทำการเรียกใช้ออโต้โหลดเดอร์โดยตรง พารามิเตอร์เดียวคือชื่อคลาสที่ต้องการโหลด
ไวยากรณ์
spl_autoload_call(string $class_name): void
ตัวอย่าง
ลองโหลดคลาสที่ไม่มีอยู่จริงโดยไม่มีออโต้โหลดเดอร์:
<?php
spl_autoload_call('NonExistentClass');
?>
ผลลัพธ์การทำงานโค้ด (เกิดข้อผิดพลาด หากไม่มีออโต้โหลดเดอร์ที่ลงทะเบียน):
// จะไม่มีอะไรเกิดขึ้น ถ้าไม่มีออโต้โหลดเดอร์ที่ลงทะเบียนไว้
ตัวอย่าง
สร้างออโต้โหลดเดอร์ง่ายๆ และลองโหลดคลาส:
<?php
spl_autoload_register(function($class) {
echo "กำลังพยายามโหลดคลาส: $class\n";
});
spl_autoload_call('TestClass');
?>
ผลลัพธ์การทำงานโค้ด:
กำลังพยายามโหลดคลาส: TestClass
ตัวอย่าง
ทดสอบการทำงานกับออโต้โหลดเดอร์หลายตัว:
<?php
spl_autoload_register(function($class) {
echo "ออโต้โหลดเดอร์ตัวแรก: $class\n";
});
spl_autoload_register(function($class) {
echo "ออโต้โหลดเดอร์ตัวที่สอง: $class\n";
});
spl_autoload_call('MyClass');
?>
ผลลัพธ์การทำงานโค้ด:
ออโต้โหลดเดอร์ตัวแรก: MyClass
ออโต้โหลดเดอร์ตัวที่สอง: MyClass
ดูเพิ่มเติม
-
ฟังก์ชัน spl_autoload_register,
ซึ่งใช้ลงทะเบียนออโต้โหลดเดอร์ -
ฟังก์ชัน spl_autoload_functions,
ซึ่งส่งคืนออโต้โหลดเดอร์ทั้งหมด -
ฟังก์ชัน class_exists,
ซึ่งตรวจสอบว่ามีคลาสนั้นอยู่หรือไม่