PHP中的名称空间在使用名称空间时,名称空间中的所有内容都会被传递吗?

PHP中的名称空间在使用名称空间时,名称空间中的所有内容都会被传递吗?,php,namespaces,Php,Namespaces,如果我有以下代码: namespace System { namespace Models { $modelsFolder = "Models"; require_once( "../$modelsFolder/Site.php" ); require_once( "../$modelsFolder/Session.php" ); require_once( "../$modelsFolder/Form.php"

如果我有以下代码:

namespace System
{
    namespace Models
    {

        $modelsFolder = "Models";
        require_once( "../$modelsFolder/Site.php" );
        require_once( "../$modelsFolder/Session.php" );
        require_once( "../$modelsFolder/Form.php" );
        require_once( "../$modelsFolder/Recaptcha.php" );
        require_once( "../$modelsFolder/AppCred.php" );
        require_once( "../$modelsFolder/User.php" );
        require_once( "../$modelsFolder/Database.php" );
    }

    namespace Controllers
    {
        namespace System\Models;
        $db = new Database();       
    }
}
如果在我的控制器文件中,我始终声明:

namespace System\Controllers;

$db->Query(); // will this work because it has been declared in the namespace Controllers?

$db的实例会被带到这个文件中吗?或者我需要在名称空间之外声明$db并在包含控制器文件之前包含它吗?

变量首先不受名称空间的影响。您正在创建的是一个规则的全局变量,其范围不受任何限制。范围!=命名空间。

那是个好消息!:让我运行一些代码,看看它是否按照我的预期工作,然后我会打勾作为答案^_^