ホームページ  >  記事  >  バックエンド開発  >  PHP で spl_autoload_register() 関数と __autoload() 関数を使用する方法は?

PHP で spl_autoload_register() 関数と __autoload() 関数を使用する方法は?

WBOY
WBOYオリジナル
2021-10-26 18:11:283091ブラウズ

前回の記事では、「PHP でオブジェクトがクラスに属しているかどうかを判断するにはどうすればよいですか?」についてお届けしました。 」では、オブジェクトが PHP のクラスに属しているかどうかを判断するために使用する必要がある関連知識が詳しく説明されています。この記事では、PHP の自動読み込みメカニズムについて説明します。みんなが助けてくれることを願っています!

PHP で spl_autoload_register() 関数と __autoload() 関数を使用する方法は?

日々の開発と使用において、オブジェクト指向プログラミングの基本的な考え方は、通常、クラスごとに個別の PHP ソース ファイルを作成するのが通例であるということです。この場合、その後のメンテナンスが便利になり、クラスの再利用が容易になります。

PHP では、クラスの自動ロード機能は spl_autoload_register() 関数と __autoload() 関数によって実現でき、プログラミングの時間と労力を節約できます。 。それでは、これら 2 つの機能を個別に紹介しましょう。

<span style="font-size: 20px;"><strong>##__autoload()<span style="font-size: 18px;"></span></strong></span>##関数 #__autoload()
関数は正確に言うと魔法のメソッドです。PHP の魔法のメソッドを 5 分で理解できます (詳細な例)

》よく使われるマジックメソッドをいくつか詳しく紹介し、自動的に呼び出される、つまり特定の条件下で関数を呼び出す必要があることについても触れています。

新しいクラスを作成するときに、現在のソース ファイルでクラスが見つからない場合、PHP は自動的に __autoload() 関数を呼び出し、クラス名を __autoload() 関数に渡します。 。これは、__autoload() 関数が呼び出される特定の条件です。その構文形式は次のとおりです。

function __autoload($class){
    // 方法体
}

注意する必要があるのは、

$class

は、クラスの名前です。ロードされる。
  • __autoload()

    この関数は、現在のソース ファイル内で 1 回だけ定義できます。
  • __autoload()

    関数を使用してクラス ファイルを自動的にロードする場合、クラス ファイルの名前はクラス名と同じである必要があります。別のクラス ファイル内で定義できるクラスは 1 つだけです。
  • 次に、例を通して __autoload() 関数の使用法を見てみましょう。例は次のとおりです:

    <?php
        function __autoload($class){
            $file = &#39;./&#39;.$class.&#39;.php&#39;;
            include_once($file);
        }
        $obj = new Demo();
    ?>

    上記のコードを実行すると、自動的にロードされますDemo.php ファイル、Demo.php 内のコードは次のとおりです:
  • <?php
        class Demo{
        }
    ?>
注意する必要があるのは: __autoload() 関数は PHP7.2.0 以降非推奨になりました。代わりに spl_autoload_register() 関数を使用できます。

#spl_autoload_register()

<span style="font-size: 20px;"><strong><span style="font-size: 18px;">## 関数 </span></strong> </span>#spl_autoload_register() 関数は、__autoload() 関数の関数を置き換える関数を指定できます。

spl_autoload_register([$autoload_function [, $throw = true [, $prepend = false ]]])
注意すべき点は次のとおりです。

#$autoload_function

: __autoload() 関数を置き換える関数名、または匿名関数にすることもできます。パラメーターが指定されない場合、autoload のデフォルト実装関数 spl_autoload() が自動的に登録されます;

    $throw
  • : $autoload_function の設定に使用されます。 be success, spl_autoload_register () 関数が例外をスローするかどうか;

  • $prepend
  • : true の場合、spl_autoload_register() 関数は $autoload_function 関数を追加しますキューの先頭に追加されます。それ以外の場合は、キューの最後に追加されます。

    次に例を見てみましょう。例は次のとおりです:
  • <?php
        spl_autoload_register(&#39;loadClass&#39;);
        function loadClass($class){
            $file = &#39;./&#39;.$class.&#39;.php&#39;;
            include_once($file);
        }
        $obj = new Demo();
    ?>
  • 上記の例では、spl_autoload_register() 関数を使用して別の関数を指定しています__autoload() 関数を置き換えます。

    ご興味がございましたら、「PHP ビデオ チュートリアル

    」をクリックして、PHP の知識をさらにご覧ください。

以上がPHP で spl_autoload_register() 関数と __autoload() 関数を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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