spl_autoload_register funktsiyasi
spl_autoload_register funktsiyasi berilgan funktsiyani klasslarni avtomatik yuklash usuli sifatida ro'yxatdan o'tkazadi. PHP aniqlanmagan klassni uchratganda, u navbat bilan barcha ro'yxatdan o'tkazilgan avtomatik yuklash funktsiyalarini chaqirib, ularga klass nomini uzatadi. Birinchi parametr - avtomatik yuklash uchun callback-funktsiya, ikkinchi parametr (ixtiyoriy) - xatolikda istisno chiqarish kerakmi, uchinchi parametr (ixtiyoriy) - funktsiyani navbat boshiga qo'shish kerakmi.
Sintaksis
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Misol
Avtomatik yuklash funktsiyasini oddiy ro'yxatdan o'tkazish:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Endi aniq include qilmasdan obyektlar yaratish mumkin
$obj = new MyClass();
?>
Misol
Avtomatik yuklash uchun anonim funktsiyadan foydalanish:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Misol
Bir nechta avtomatik yuklash funktsiyalarini ro'yxatdan o'tkazish:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Navbat boshiga qo'shamiz
// PHP funktsiyalarni quyidagi tartibda chaqiradi: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Shuningdek qarang
-
spl_autoload_functions funktsiyasi,
bu avtomatik yuklovchilarni qaytaradi -
spl_autoload_unregister funktsiyasi,
bu avtomatik yuklovchini o'chiradi -
class_exists funktsiyasi,
bu klassni tekshiradi