前回の記事では、「PHP でオブジェクトがクラスに属しているかどうかを判断するにはどうすればよいですか?」についてお届けしました。 」では、オブジェクトが PHP のクラスに属しているかどうかを判断するために使用する必要がある関連知識が詳しく説明されています。この記事では、PHP の自動読み込みメカニズムについて説明します。みんなが助けてくれることを願っています!
日々の開発と使用において、オブジェクト指向プログラミングの基本的な考え方は、通常、クラスごとに個別の 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()
__autoload()
次に、例を通して __autoload() 関数の使用法を見てみましょう。例は次のとおりです:
<?php function __autoload($class){ $file = './'.$class.'.php'; 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() 関数を置き換える関数名、または匿名関数にすることもできます。パラメーターが指定されない場合、autoload のデフォルト実装関数 spl_autoload() が自動的に登録されます;
<?php spl_autoload_register('loadClass'); function loadClass($class){ $file = './'.$class.'.php'; include_once($file); } $obj = new Demo(); ?>
ご興味がございましたら、「
PHP ビデオ チュートリアル
以上がPHP で spl_autoload_register() 関数と __autoload() 関数を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。