請注意,檔案副檔名的順序對於效能很重要。您應該將您偏好的檔案副檔名的優先順序設為最高,或者只為您的類別檔案使用一個副檔名。看看這個例子
一些類別檔案
ClassA.php
<?php class ClassA { var $val = 'Hello from class "ClassA"'; } ?>
ClassB.php
<?php class ClassB { var $val = 'Hello from class "ClassB"'; } ?>
ClassC.php
<?php class ClassC { var $val = 'Hello from class "ClassC"'; } ?>
ClassD.php
<?php class ClassD { var $val = 'Hello from class "ClassD"'; } ?>
ClassE.php
<?php class ClassE { var $val = 'Hello from class "ClassE"'; } ?>
1. 簡單範例
<?php
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
?>
2. 更改優先順序
<?php
spl_autoload_extensions('.php,.inc');
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
?>
或者,您可以使用這個簡單的函式,它對於優先順序較低的副檔名執行速度稍快 :)
<?php
function my_autoload($className, $extList='.inc,.php') {
$ext = explode(',',$extList);
foreach($ext as $x) {
$fname = $className.$x;
if(@file_exists($fname)) {
require_once($fname);
return true;
}
}
return false;
}
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
my_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';
}
?>
---
Safak Ozpinar - 伊斯坦堡大學,電腦工程學系