spl_autoload_register funksiýasy
spl_autoload_register funksiýasy berlen funksiýany klaslary awtomatiki ýüklemek usulynyň amala aşyryjylygy hökmünde hasaba alýar. PHP kesgitlenmedik klas duşan wagty, ol üsti bilen ähli hasaba alynan awtomatiki ýükleme funksiýalaryny çagyryp, olara klasyň adyny geçirýär. Birinji parametr - awtomatiki ýüklemek üçin ýüzleniş funksiýasy, ikinji parametr (islegli) - ýalňyşlyk bolanda ýüz tutmany atmalymy, üçünji parametr (islegli) - funksiýany nöbetiň başyna goşmalymy.
Sintaksis
spl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);
Mysal
Awtomatiki ýükleme funksiýasynyň ýönekeý hasaba alnyşy:
<?php
function my_autoloader($class) {
include 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
// Indi aç-açan include etmezden nusga döredip bolýar
$obj = new MyClass();
?>
Mysal
Awtomatiki ýüklemek üçin atsyz funksiýany ulanmak:
<?php
spl_autoload_register(function ($class) {
include 'lib/' . str_replace('\\', '/', $class) . '.php';
});
$obj = new Some\Namespace\MyClass();
?>
Mysal
Birnäçe awtomatiki ýükleme funksiýalaryny hasaba almak:
<?php
spl_autoload_register('autoloader1');
spl_autoload_register('autoloader2');
spl_autoload_register('autoloader3', true, true); // Nöbetiň başyna goşýarys
// PHP funksiýalary şu tertipde çagyrar: autoloader3, autoloader1, autoloader2
$obj = new MyClass();
?>
Şeýle-de görüň
-
spl_autoload_functions funksiýasyny,
awtomatiki ýükleyjileri yzyna gaýtarýar -
spl_autoload_unregister funksiýasyny,
awtomatiki ýükleyjini aýyrýar -
class_exists funksiýasyny,
klasyny barlap görýär