请注意,文件扩展名的顺序对性能至关重要。您应该将您喜欢的文件扩展名的优先级设置最高,或者只为您的类文件使用一个扩展名。请查看以下示例
一些类文件
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 - 伊斯坦布尔大学,计算机工程