PHP 5.3に先立ち、__オートロード機能は捕捉できない例外のcatchブロックをスローし、致命的なエラー(致命的なエラー)を引き起こす可能性があります。
__autoload()関数は自動的にロードされたクラスとインタフェースが、より推奨spl_autoload_register()関数であってもよいです。spl_autoload_register()は、自動的に(例えば、サードパーティのライブラリとしてローダー、任意の数をサポートすることができ、同一アプリケーション)クラスをロードするためのより柔軟な方法を提供します。したがって、もはや推奨__autoload()関数は、将来のリリースでは放棄されます。
autoload_function
この方法は、[名前]の関数であり、それは文字列またはアレイ(クラスメソッド呼び出し)であることができます。この機能(メソッド)の新しいクラスファイルのニーズにあるので来るので、彼は新しいファイルが見つからないとき(requeire)が含まれるが含まれています。実際には、含まれ、関数は、プロジェクト全体をカプセル化する必要があります。
投げる
ときautoload_function成功、spl_autoload_register()例外がスローされた場合は、このパラメータセットを登録することができません。
前付加
trueの場合、spl_autoload_register()関数ではなく、キューの末尾よりも、キューの先頭に追加されます。
test.phpを
<?PHPの クラスのテスト { 関数__construct(){ エコー「Testクラスが<BR>初期化されています」。 } 機能表示(){ // 現在のページは、UTF8エンコーディングです $ strの= ' 中国89PHP ' ; STRLENエコー(STR $)。" " ; // 中国+ +番号英語:. 6 + 2 = + 11 3。 エコーmb_strlen(STRの$、' GBK ')。" " ; // 中国英語+番号+:+ 3 + 2 = 3 8 エコーmb_strlen(STRの$、' UTF8 ')。" " ; // 中国+ +番号英語:2 + 2 + 3 = 7 // 文字の長さのための中国のアカウントvarchar型データベース } }
my_autoload.phpファイル
<?PHP // 方法1:自動読み込み機能は廃止された後5.0 / * 関数__autoload($クラス) { $ファイル= $クラス。'.PHP'; もし(is_file($ファイル)){ require_once($ファイル); } } $テスト=新しいテスト(); //出力:テストクラスが初期化されます * / // 使用spl_autoload_register機能 // メソッド2: クラスmy_autoload { パブリック 静的関数自動ロード($のクラス){ $ファイル = $のクラス。' .phpの' ; もし(is_file($ファイル)){ require_once($ファイル); } } } // 登録ローディング spl_autoload_register(" my_autoload :: AUTOLOAD "、trueに、真の); テスト$ = 新しい新しいテスト(); // 出力:テストクラスが初期化される $テスト- > ショー(); ?>