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();
?>

Տես նաև

  • spl_autoload_functions ֆունկցիան,
    որը վերադարձնում է ավտոմատ բեռնիչները
  • spl_autoload_unregister ֆունկցիան,
    որը հեռացնում է ավտոմատ բեռնիչը
  • class_exists ֆունկցիան,
    որը ստուգում է դասը