ホームページ  >  記事  >  バックエンド開発  >  PHPオートロードクラスとは何ですか

PHPオートロードクラスとは何ですか

伊谢尔伦
伊谢尔伦オリジナル
2017-07-01 09:16:501496ブラウズ

php の 自動読み込み:

php5 より前では、特定のクラスまたはクラス メソッドを使用したい場合、クラスを使用する前に include または require を使用する必要がありました。インクルードを書く、問題

PHP の作者はそれを簡単にしたいのですが、現在インクルードがない場合、システムは自動的にクラスを見つけて自動的に導入することができます~

つまり、オートロードです。 ()関数が登場しました。

通常、class_core.php に配置される discuz などのアプリケーション エントリ クラスに配置されます。

まず簡単な例について話しましょう:

最初のケース: ファイル A.php の内容は次のとおりです

<?php
class A{
  public function construct(){
         echo &#39;fff&#39;;
  }
}
?>

ファイル C.php の内容は次のとおりです:

<?php   
function autoload($class)   
{   
$file = $class . &#39;.php&#39;;   
if (is_file($file)) {   
require_once($file);   
}   
}   

$a = new A(); //这边会自动调用autoload,引入A.php文件
?>

2 番目のケース:時々、自分でできるようにしたいと思っています オートロードを定義し、よりクールな名前のローダーを付けたい場合は、C.php を次のように変更します:

<?php
function loader($class)
{
$file = $class . &#39;.php&#39;;
if (is_file($file)) {
require_once($file);
}
}
spl_autoload_register(&#39;loader&#39;); //注册一个自动加载方法,覆盖原有的autoload
$a = new A();
?>

3 番目のケース: より高度なクラスを使用したい自動読み込みを管理する

<?php   
class Loader   
{   
public static function loadClass($class)   
{   
$file = $class . &#39;.php&#39;;   
if (is_file($file)) {   
require_once($file);   
}   
}   
} 
spl_autoload_register(array(&#39;Loader&#39;, &#39;loadClass&#39;));   

$a = new A();
?>

現時点で最も最適な形式です。

通常、spl_autoload_register(*)をエントリスクリプトに入れる、つまり最初から引用します。例えば、以下のような方法です。

えー

この段落はエントリーファイルの先頭に配置されており、当然素晴らしいです~

以上がPHPオートロードクラスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。