1

我面临以下PHP代码问题:

目前我的 PHP 代码没有使用任何命名空间。我对包含文件进行了修改,foobarinc.php因此我现在拥有两个版本foobarinc-v1.php(旧版本)和foobarinc-v2.php(新版本)。包含文件具有两个文件中都存在的一些功能(例如foo())。目前foobarinc-v2.php有一些错误,所以我需要使用foo()from调试我的代码fooinc-v1.php(因为至少我知道它有效)但我还需要foo()foobarinc-v2.php其他地方调用。我不想更改 `foobarinc-v1.php 文件中的任何内容,因为我将需要它,但如有必要,我愿意为文件添加命名空间。我可以使用 PHP 命名空间来实现我的目的吗?

例如我想做:

主.php:

include("includes/foobarinc-v2.php");

function main() {

  hello(); // from main.php

  namespace myDebugNameSpace {

    include("includes/foobarinc-v2.php");

    $a = foo(); // foo() version 2

    outerNameSpace::bar($a); // bar() version 1

  }

  world(); // from main.php

  foo(); // foo() version 1

}

main();

如何修复上述代码以实现我的目的?

4

1 回答 1

2

您需要做的是在 foobarinc-v1.php 命名空间中添加如下:

namespace foobarinc1;

foob​​arinc-v2.php 几乎一样:

namespace foobarinc2;

主文件

include 'foobarinc-v1.php'; 
include 'foobarinc-v2.php';
use foobarinc1;
use foobarinc2;

foobarinc1->foo();
foobarinc2->foo();

你可以在这里找到更多:http: //php.net/manual/pl/language.namespaces.php

于 2015-02-10T18:13:06.397 回答