spl_autoload_registerと__autoload()マジックメソッド

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に真の);

テスト$ = 新しい新しいテスト(); // 出力:テストクラスが初期化される 
$テスト- > ショー();

?>

 

おすすめ

転載: www.cnblogs.com/wanglijun/p/10926499.html
おすすめ