-1

わかりました、私はこの質問の完全で完全なばかとして出てきているかもしれません. しかし、__autoload 関数は php でどのように機能するのでしょうか? 私はそれを機能させることができず、その機能がどのように機能するかを説明する適切なチュートリアルを見つけることができません。

4

2 に答える 2

3

定義がphpに不明なクラスを参照すると、__autoload関数が呼び出されます。そのようなクラスの定義を関数にロードする方法に関するロジックを定義する必要があります__autoload。例えば以下のように。

function __autoload($classname) {
    $filename = "./". $classname .".php";
    include_once($filename);
}

//when you say $a = new someclass(); autoload gets called with $classname = "someclass"

または、 を使用してその関数をオートロード関数として登録することにより、任意の関数をオートロード関数として使用できますspl_autoload_register

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

クラス定義が見つからない場合に false を返すspl_autoload_registerと、チェーン内の次の関数が呼び出され、オートロード関数をチェーンすることもできます。

function my_autoloader1($class) {
    $file = 'classes1/' . $class . '.class.php';
    if (!is_file($file)) return false;
    include $file;
}

function my_autoloader2($class) {
    include 'classes2/' . $class . '.class.php';
}

spl_autoload_register(array('my_autoloader1', 'my_autoloader2'));
于 2013-07-05T23:22:49.310 に答える