命名空間及自動加載函數的使用

結合__autoload函數或spl_autoload_register函數使用命名空間。以下是使用範例,加上原始加載一共介紹三種使用方法。

代碼佈局:主目錄namespace,下級目錄AutoFolder,主目錄下有index.php入口文件,AutoFolder下有autoload.php和Order.php文件。

index.php

<?php
include_once('AutoFolder/autoload.php');
$order = new AutoFolder\Order();
$order->showName();

autoload.php

<?php
// namespace AutoFolder; #使用命名空間時,只有方法一能用,其他均受限制,方法三需要在spl_autoload_register方法中加入命名空間指定loader方法
//方法一:直接載入
require('Order.php');   

//方法二:使用__autoload函數
/*function __autoload($class)   
{   
$file = $class . '.php';   
if (is_file($file)) {   
require_once($file);   
}   
}*/

//方法三:使用自動函數註冊
/*function loader($class)   
{   
$file = $class . '.php';   
if (is_file($file)) {   
require_once($file);   
}   
}   	
spl_autoload_register('loader');   */

//方法三擴展:使用類方法
/*class Loader   
{   
public static function loadClass($class)   
{   
$file = $class . '.php';   
if (is_file($file)) {   
require_once($file);   
}   
}   
}   
spl_autoload_register(array('Loader', 'loadClass')); 
*/

?>


Order.php

<?php
namespace AutoFolder;

class Order
{
    public function __construct()
    {
        echo 'Class NameSpace is "', __NAMESPACE__, '"';
    }
    public function showName()
    {
        echo "<ul><li>I am Order<br />";
    }
}


通過index.php加載,然後分別打開註釋看實現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章