PHPクラスの自動ロード機構
php の自動読み込み:
php5 より前では、特定のクラスまたはクラスメソッドを使用したい場合、クラスを使用するたびに include または require する必要があります。面倒な
php作者 簡単に言うと、現在インクルードがない場合は、システムが自動的にクラスを見つけて自動的に導入することができます~
そこで、__autoload()関数が登場しました。
通常、class_core.php に配置される discuz などのアプリケーション エントリ クラスに配置されます。
最初に簡単な例について話しましょう:
最初のケース: ファイル A.php の内容は次のとおりです
<?php class A{ public function __construct(){ echo 'fff'; } } ?> 文件C.php 中内容如下: <?php function __autoload($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } $a = new A(); //这边会自动调用__autoload,引入A.php文件 ?>
ログイン後にコピー
2 番目のケース: オートロードをカスタマイズし、ローダーにもっとクールな名前を付けたい場合があります。 C .php は次のように変更されます:
<?php function loader($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } spl_autoload_register('loader'); //注册一个自动加载方法,覆盖原有的__autoload $a = new A(); ?>
ログイン後にコピー
3 番目の状況: より高度になり、クラスを使用して自動読み込みを管理したいと考えています
<?php class Loader { public static function loadClass($class) { $file = $class . '.php'; if (is_file($file)) { require_once($file); } } } spl_autoload_register(array('Loader', 'loadClass')); $a = new A(); ?>
ログイン後にコピー
これが現時点で最良の形式です。
通常、spl_autoload_register(*)をエントリスクリプトに入れる、つまり最初から引用します。たとえば、次のようなディスカスアプローチがあります。
そうですこの段落をエントリーファイルの先頭に置くのは素晴らしいことです~
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
3週間前
By DDD
Windows11 KB5054979の新しいものと更新の問題を修正する方法
2週間前
By DDD
アサシンクリードシャドウ - 鍛冶屋を見つけて武器と鎧のカスタマイズを解除する方法
1 か月前
By DDD
Atomfallのクレーンコントロールキーカードを見つける場所
3週間前
By DDD
<🎜>:Dead Rails-すべての課題を完了する方法
3週間前
By DDD

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7640
15


CakePHP チュートリアル
1391
52


Steamのアカウント名の形式は何ですか
90
11


NYTの接続はヒントと回答です
32
150

