spl_autoload_register()関数の役割

1700 ワード

復習_Autoloadの時、spl_が見えましたautoload_register()という関数.しかし、すぐには分からなかったので、資料を調べることで分かりました.
1.__Autoload()-自動ロード関数
私は多くのクラスファイルをクラス名で使用します.class.phpの形式はclassディレクトリに格納、classの同級ディレクトリにindexを確立する.php.classディレクトリに入るにはそれぞれclass 1を作成します.class.php、class2.class.php、class3.class.phpファイル、それぞれ中のファイルにコードを追加します
<?php
//class1.class.php 
class class1{
	public function __construct(){
		echo "class1";
	}
}
?>

<?php
//class2.class.php 
class class2{
	public function __construct(){
		echo "class2";
	}
}
?>

<?php
//class3.class.php 
class class3{
	public function __construct(){
		echo "class3";
	}
}
?>

index.phpファイルへの書き込み
<?php
function __autoload($classname){
	$filename = "./class/".$classname.".class.php";
	if(is_file($filename)){
		include $filename;
	}
}

$test1 = new class1();
echo '<br/>';
$test1 = new class2();
echo '<br/>';
$test1 = new class3();

// 
class1
class2
class3

?>

classの下にあるすべてのロードするクラスを自動的にロードすることに成功しました.
2.spl_autoload_register()——登録_Autoload()関数
classの中のファイルは何も変えないで、ただ簡単にindexを書き直します.php
<?php
//  loadclass 
// loadclass 
function loadclass($classname){
	$filename = "./class/".$classname.".class.php";
	if(is_file($filename)){
		include $filename;
	}
}
// spl_autoload_register() loadclass 
spl_autoload_register("loadclass");

$test1 = new class1();
echo '<br/>';
$test1 = new class2();
echo '<br/>';
$test1 = new class3();
?>
性能の上で、私はあまり発言権がなくて、多くのフレームワークの中ですべてsplを使うことを発見しましたautoload_register()、みんなが自然に彼の道理を持っている以上、私はまずこの疑問を残しておきましょう.