HOWTO · PHP
PHP 中的自動載入類
本文展示了 spl_autoload_register 函式如何自動載入未在 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() 函式。