PHP 中的自动加载类

在本教程中,我们将介绍 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() 函数。