PHP 中的自动加载类

John Wachira 2022年5月13日
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() 函数。

作者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn