注019 spl_autoload_registerによる自動ロード

黄舟
リリース: 2023-03-04 09:24:01
オリジナル
1071 人が閲覧しました

TSpl_autoload_register

(PHP 5 & GT; = 5.1.2, PHP 7)

Spl_Autoload_register — __autoload として登録された関数

Bool SPL_AUTOLOAD_register ([CALLLBBB le $ AutoLOAD_FUNCTION [, bool $prepend = false ]]] )

説明

この関数を通じて、ロードされたクラスのアドレッシング モードを指定できるため、大規模なバッチを要求したりインクルードしたりする必要はありません。システムは、指定されたルールに従って自動的に対応する場所に移動し、インスタンス化する必要があるクラスを見つけます。この方法は比較的低レベルですが、フレームワークがあれば、通常はこの作業を行う必要はありません。ただし、このブログを書いているときに自分でスクリプトをいじる必要がある場合などは、どうしても必要になります。現時点では、それを回避する方法はありません。次の例は、スクリプトで使用する単純な自動ロード プログラムです。

spl_autoload_register(function ($class) {
    $rootPath = realpath(sprintf('%s/..', __DIR__));
    $paths = array(        'src',
    );    foreach ($paths as $path) {        if (is_file(
            $file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class
            . '.php'
        )) {            include $file;            break;
        }
    }
});
ログイン後にコピー

匿名関数は PHP 5.3 以降でのみ使用できることに注意してください。使用できない場合は、PHP のバージョンを確認してください。ここでは、src フォルダー内で検索するすべてのクラスを指定するだけです。クラス名はファイル名とまったく同じです。

上記は、自動読み込みを実現するための spl_autoload_register による Note 019 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!