関数 spl_autoload_register
関数 spl_autoload_registerは、指定された関数をクラスの自動ロードメソッドの実装として登録します。PHPが未定義のクラスに遭遇した場合、登録されたすべてのオートローダ関数を順番に呼び出し、クラス名を渡します。最初のパラメータはオートロード用のコールバック関数、2番目のパラメータ(オプション)はエラー時に例外をスローするかどうか、3番目のパラメータ(オプション)は関数をキューの先頭に追加するかどうかです。
構文
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、