関数 spl_autoload_register

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

構文

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

関連項目