__autoload() の使用法については、以前に WEB 開発ノートで説明したのでここでは説明しません。 PHPの__autoload関数(クラスファイルを自動ロード)の使い方、オリジナルアドレス:http://www.jb51.net/article/29625.htm。
spl_autoload_register() の使用法について説明します。これは非常に簡単で、カスタム __autoload() を宣言することができます。好きなように実行できます。もちろん、関数本体は __autoload() と同じように記述する必要があります。
このメソッドは、PHP が独自の関数またはメソッドを登録するときに呼び出されます。PHP は __autoload() 関数を呼び出しませんが、カスタム関数
spl_autoload_register('func_name' ; ( ) 関数
説明
bool spl_autoload_register ([ callback $autoload_function ] )
関数を SPL __autoload 関数スタックに登録します。このスタック内の関数がまだアクティブになっていない場合は、アクティブにします。
プログラムに __autoload 関数が実装されている場合は、__autoload スタックに明示的に登録する必要があります。
spl_autoload_register() 関数は、Zend Engine の __autoload 関数を spl_autoload() または
spl_autoload_call() に置き換えるためです。
パラメータ
autoload_function
登録されるオートロード関数。パラメータが指定されていない場合は、autoload のデフォルト実装関数
spl_autoload() が自動的に登録されます。
戻り値
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
注: SPL は Standard PHP Library の略称です。これは、PHP5 で導入された拡張ライブラリであり、その主な機能には、オートロード メカニズムとさまざまな Iterator インターフェイスまたはクラスの実装が含まれます。 SPL オートロード メカニズムは、関数ポインタ autoload_func をオートロード関数を持つ自己実装関数にポイントすることによって実装されます。 SPL には 2 つの異なる関数 spl_autoload と spl_autoload_call があり、これら 2 つの異なる関数アドレスを autoload_func に指定することで、異なる自動ロード メカニズムが実装されます。
コードは次のとおりです:
test.class.php
コードをコピー
コードは次のとおりです:
class abc{ function __construct()
{echo 'www.chhua.com;
}
?> >
load.php
コードをコピー
クラス LOAD { 静的関数loadClass($class_name) {
$filename = $class_name.".class.php";if (is_file($filename)) return include_once $filename;
}
}
/**
* オブジェクトの自動ロードを設定します
* spl_autoload_register — 指定された関数を __autoload() 実装として登録します
*/
spl_autoload_register(array('LOAD', 'loadClass')); ;//自動ロードを実現、多くのフレームワーク このメソッドを使用してクラス <>?>