Funkcja spl_autoload_call

Funkcja spl_autoload_call wywołuje wszystkie zarejestrowane autoloadery w celu próby załadowania określonej klasy. W przeciwieństwie do spl_autoload_register, która rejestruje autoloadery, ta funkcja bezpośrednio wykonuje ich wywołanie. Jedynym parametrem jest nazwa klasy, którą należy załadować.

Składnia

phpspl_autoload_call(string $class_name): void

Przykład

Spróbujmy załadować nieistniejącą klasę bez autoloadera:

php<?php
spl_autoload_call('NonExistentClass');
?>

Wynik wykonania kodu (błąd, jeśli autoloadery nie są zarejestrowane):

php// Nic się nie stanie, jeśli nie ma zarejestrowanych autoloaderów

Przykład

Stwórzmy prosty autoloader i spróbujmy załadować klasę:

php<?php
spl_autoload_register(function($class) {
  echo "Próba załadowania klasy: $class\n";
});

spl_autoload_call('TestClass');
?>

Wynik wykonania kodu:

phpPróba załadowania klasy: TestClass

Przykład

Sprawdźmy działanie z kilkoma autoloaderami:

php<?php
spl_autoload_register(function($class) {
  echo "Pierwszy loader: $class\n";
});

spl_autoload_register(function($class) {
  echo "Drugi loader: $class\n";
});

spl_autoload_call('MyClass');
?>

Wynik wykonania kodu:

phpPierwszy loader: MyClass
Drugi loader: MyClass

Zobacz też