#phpエントリーファイルの役割
phpエントリーファイルは自動読み込み機能を実現します。PHP エントリ ファイルの自動読み込み機能を解析する
php:php5 の以前は、特定のクラスまたはクラスを使用する必要がありました。メソッド。使用する前に include または require する必要があります。クラスを使用するたびに、include を記述する必要があります。php を使用してください。作成者はそれを簡単にしたいと考えています。a を参照するのが最善です。現在インクルードがない場合、システムはこのクラスを自動的に見つけて自動的に導入できます~そこで、 __autoload() 関数が登場しました。 通常は、class_core.php に配置される discuz などのアプリケーション エントリ クラスに配置されます。 推奨: 「PHP チュートリアル 」
まず簡単な例について話しましょう: 最初の状況: ファイル 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(*) をエントリ スクリプトに含めます。つまり、最初から引用します。たとえば、次のようなディスカスアプローチがあります。
if(function_exist('spl_autoload_register')){ spl_autoload_register(array('core','autoload')); //如果是php5以上,存在注册函数,则注册自己写的core类中的autoload为自动加载函数 }else{ function __autoload($class){ //如果不是,则重写php原生函数__autoload函数,让其调用自己的core中函数。 return core::autoload($class); } }この段落はエントリ ファイルの先頭にスローされますが、これは当然のことながら優れています~
以上がphpエントリーファイルの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。