ホームページ  >  記事  >  バックエンド開発  >  マジックメソッド __autoload() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)

マジックメソッド __autoload() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)

巴扎黑
巴扎黑オリジナル
2017-04-18 18:17:442228ブラウズ

コードを作成するとき、多くのクラスをページに導入するという頭の痛い問題に遭遇することがよくあり、include_once または require_once() 関数を使用してクラスを 1 つずつ導入する必要があります。インポートするコンテンツがそれほど多くない場合はまだ大丈夫ですが、インポートするファイルが数十個もある場合は、煩わしいどころか操作量も多くなり、何度も導入するケースがあります。あるいは引用を忘れたり。

PHP5 では、__autoload() メソッドを使用して、使用する必要のあるクラスを自動的にインスタンス化できます。プログラムがクラスを使用しているが、そのクラスがインスタンス化されていない場合、PHP5 は __autoload() メソッドを呼び出して、指定されたパス内でクラスと同じ名前のファイルを自動的に検索します。見つかった場合、プログラムは実行を続行します。見つからない場合は、エラーが報告されます。

注:

他のすべてのメソッドが機能するには、クラス内に追加する必要があります。__autoload() は、クラスに追加されない唯一のメソッドです

クラスがページ内で使用されている限り、クラス名は自動的に付けられます。このパラメータを渡します。

例:

クラスファイルsport.class.phpのコード:

<?php
class Sport{
private $type;
public function __construct($type){
$this->type = $type;
}
public function __toString(){
return $this->type;
}
}
?>

index.phpファイル下のコード:

<?php
function __autoload($class_name){                                         //创建__autoload方法
$class_path = $class_name . &#39;.class.php&#39;;                           //类文件路径
if(file_exists($class_path)){                                                  //判断文件是否存在
include_once($class_path);                                          //动态引入文件
}else
echo &#39;类路径错误&#39;;
}
$sport = new Sport(&#39;打篮球&#39;);
echo $sport;
?>

まず、クラスファイルsport.class.phpにクラスを作成しますが、インスタンス化しないでください。次に、クラスファイル内のクラスをphpファイルindex.phpに導入します。

以上がマジックメソッド __autoload() インスタンスの詳細な説明 (PHP 上級オブジェクト指向チュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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