在include文件中使用命名空间

时间:2014-11-10 10:23:41

标签: php namespaces

我有一个班级:

namespace Navi\View;

use Navi\Navi;

class View extends Base{
    public function render(){
        $test = 'This is a local variable!';
        $obj = new Navi; //Working, ofcourse!
        include 'file.php';
    }
}

在" file.php";

<?php
echo $test;
var_dump(new Navi); //Class Navi not found

为什么本地$ test变量传递给file.php,但Navi类不是?

当然,如果我使用&#34;使用Navi \ Navi&#34; in&#34; file.php&#34;代码工作。我不明白为什么!

使用不使用&#34的Navi类的任何方法;使用Navi \ Navi&#34;?

请帮助我!

三江源!

1 个答案:

答案 0 :(得分:1)

导入规则是基于每个文件的,这意味着包含的文件不会继承父文件的导入规则。

我将以这种方式更改file.php中的代码:

var_dump(new \Navi\Navi)