Функсияи spl_autoload_register
Функсияи spl_autoload_register функсияи додашударо ҳамчун татбиқи усули худкорборкунии синфҳо сабт мекунад. Вақте ки PHP бо синфи муайянашуда рӯ ба рӯ мешавад, ҳама функсияҳои сабтшудаи худборкуниро ба тартиб даъват мекунад, номи синфро ба онҳо мегузаронад. Параметри аввал - функсияи callback барои худборкунӣ, параметри дуюм (ихтиёрӣ) - оё истисно партояд дар сурати хато, параметри сеюм (ихтиёрӣ) - оё функсияро ба аввали навбат илова кунем.
Синтаксис
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Намуна
Сабти оддии функсияи худборкунӣ:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Ҳоло метавон объектҳоро бе include-и ошкор сохт
$obj = new MyClass();
?>
Намуна
Истифодаи функсияи бе ном барои худборкунӣ:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Намуна
Сабти чанд функсияи худборкунӣ:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Ба аввали навбат илова мекунем
// PHP функсияҳоро дар тартиб даъват мекунад: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Инчунин нигаред
-
функсияи spl_autoload_functions,
ки худборкунандагонро бармегардонад -
функсияи spl_autoload_unregister,
ки худборкунандаро нест мекунад -
функсияи class_exists,
ки синфро месанҷад