PHP 快速導覽 - 不同路徑下的命名空間與 include

不同路徑的命名空間 (namespace) 需要用 include 設定路徑,例如下面的 name06.php 放在 name 目錄(資料夾)中

<?php
namespace Name01\Name02\Name03;

const DEMO = 1;

function demo() {
    return 2;
}

class Demo {
    static function do_something() {
        return 3;
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:name06.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


然後我們在 name07.php 使用 name06.php 的命名空間
<?php
namespace Name01\Name02;
include 'name/name06.php';

const DEMO = 4;

function demo() {
    return 5;
}

class Demo {
    static function do_something() {
        return 6;
    }
}

echo demo() . "\n"; 
echo Demo::do_something() . "\n"; 
echo DEMO . "\n"; 

echo Name03\demo() . "\n"; 
echo Name03\Demo::do_something() . "\n"; 
echo Name03\DEMO . "\n"; 
                                  
echo \Name01\Name02\Name03\demo() . "\n"; 
echo \Name01\Name02\Name03\Demo::do_something() . "\n"; 
echo \Name01\Name02\Name03\DEMO; 

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:name07.php
    功能:示範 PHP 程式 
    作者:張凱慶
    時間:西元 2013 年 2 月 */
?>


注意命名空間的階層是用反斜線,路徑要用斜線
include 'name/name06.php';


這裡也可以寫成
include './name/name06.php';


./ 表示相同路徑,執行結果如下



中英文術語對照
命名空間namespace


您可以繼續參考
命名空間


相關目錄
回 PHP 快速導覽
回 PHP 教材
回首頁


參考資料
http://www.php.net/manual/en/language.namespaces.rationale.php
http://www.php.net/manual/en/language.namespaces.definition.php
http://www.php.net/manual/en/language.namespaces.nested.php
http://www.php.net/manual/en/language.namespaces.definitionmultiple.php
http://www.php.net/manual/en/language.namespaces.basics.php
http://www.php.net/manual/en/language.namespaces.importing.php
http://www.php.net/manual/en/language.namespaces.global.php
http://www.php.net/manual/en/language.namespaces.fallback.php
http://www.php.net/manual/en/language.namespaces.rules.php
http://www.php.net/manual/en/language.namespaces.faq.php

沒有留言: