0

次のコードがある場合:

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 を宣言し、コントローラ ファイルが含まれる前にそれを含める必要がありますか?

4

1 に答える 1

0

そもそも、変数は名前空間の影響を受けません。そこで作成しているのは、スコープが何にも制限されていない通常のグローバル変数です。スコープ != 名前空間。

于 2013-08-08T14:38:21.600 に答える