在xampp下的php中的命名空间

时间:2013-10-09 18:58:00

标签: php namespaces directory collision

我在xampp下使用php。

在我的C:\ xampp \ htdocs \ AppLib1 \ lib1.php

<?php
// application library 1 i.e. lib1.php
namespace AppLib1;

const MYCONST = 'AppLib1MYCONST';

function MyFunction() {
    return __FUNCTION__;
}

class MyClass {
    static function WhoAmI() {
        return __METHOD__;
    }
}
?>

并在我的C:\ xampp \ htdocs \ myapp.php

<?php
//myapp.php

header('Content-type: text/plain');
include_once ('lib1.php');

echo AppLib1MYCONST . "n";
echo AppLib1MyFunction() . "n";
echo AppLib1MyClass::WhoAmI() . "n";
?>

现在当我在本地运行myapp.php时,我收到了致命错误


警告:require_once(lib1.php):无法打开流: C中的 C:\ xampp \ htdocs \ myapp.php 中没有此类文件或目录 3

致命错误:require_once():在 C:\ xampp \ htdocs \ myapp中打开所需的'lib1.php'(include_path ='。; C:\ xampp \ php \ PEAR')失败.php 3

有些人可以解释一下如何使用lib1.php中的函数,类,常量

输出应该是: AppLib1MYCONST AppLib1MyFunction AppLib1MyClass :: WHOAMI

我知道名称冲突问题可以通过命名空间来解决。

1 个答案:

答案 0 :(得分:0)

我相信你需要这样称呼它:

echo AppLib1\MYCONST . "n";
echo AppLib1\MyFunction() . "n";
echo AppLib1\MyClass::WhoAmI() . "n";