Функция spl_autoload_register

Функция spl_autoload_register берилган функцияни классларни автюклаш усули сифатида рўйхатга олади. PHP аникланмаган класс учраганда, у барча рўйхатга олинган автюклаш функцияларини кетма-кетликда чақириб, уларга класс номини ўтказади. Биринчи параметр - автюклаш учун callback-функция, иккинчи параметр (ихтиёрий) - хатоликда истисно чиқариш керакми, учинчи параметр (ихтиёрий) - функцияни навбат бошланишига қўшӀш керакми.

Синтаксис

phpspl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);

Мисол

Автюклаш функциини содда рўйхатга олиш:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Энди аник include қилмасдан объект яратиш мумкин
  $obj = new MyClass();
?>

Мисол

Автюклаш учун номсиз функциядан фойдаланиш:

php<?php
  spl_autoload_register(function ($class) {
    include 'lib/' . str_replace('\\', '/', $class) . '.php';
  });
  
  $obj = new Some\Namespace\MyClass();
?>

Мисол

Бир нечта автюклаш функцияларини рўйхатга олиш:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Навбат бошланишига қўшамиз
  
  // PHP функцияларни куйидаги тартибда чақиради: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Шунингдек қаранг