在本文中,我们将介绍 spl_autoload_register()
函数。我们将看到如何加载未在 PHP 脚本中定义的类。
在 PHP 中使用 spl_autoload_register()
函数自动加载类
首先,我们将创建一个 PHP 类。我们将调用这个类 fruit
并将 PHP 脚本保存在我们本地服务器文档根目录中的文件夹 fruits
中。
我们还将在类中创建对象 apple
。
将 PHP 脚本文件命名为类名很重要。在我们的例子中,我们将把我们的 PHP 脚本命名为 fruit.php
。
<?php
// Creating a Fruit class
Class fruit {
public $name;
public $color;
public function set_name($name) {
$this->name = $name;
}
public function get_name() {
return $this->name;
}
}
$apple = new fruit();
$apple->set_name('Apple');
echo $apple->get_name();
?>
输出:
Apple
让我们在新脚本的此类中创建一个对象。我们将使用 spl_autoload_register()
函数在我们的新 PHP 脚本上实例化类并创建 Orange
。
下面的代码说明了如何创建自定义自动加载函数,在我们的例子中是 autoload fruits()
。在使用 spl_autoload_register()
函数时,我们将参考我们的自定义自动加载函数。
<?php
//Define the autoload function
function autoloadFruit($className) {
$filename = 'fruits' . $class. '.php.';
if(is_readable($filename)){
require $filename;
}
}
// Using the spl_autoload_register() Function to Autoload Class Fruit using the autoload function above.
spl_autoload_register('autoloadFruit');
class autoloadFruit
{
public function set_name($name) {
$this->name = $name;
}
public function get_name() {
return $this->name;
}
}
$orange = new autoloadfruit();
$orange->set_name('Orange');
echo $orange->get_name();
?>
输出:
Orange
当你有许多脚本要参考时,你可以添加多个自动加载功能。你只需要为每个类创建一个自定义的自动加载功能。
或者,你可以使用 include_once()
函数。