覆盖特定类

时间:2015-08-27 13:44:39

标签: php namespaces

如果我有一个PHP命名空间,如下所示:

<?php

   namespace A\B;

   $test = new MyClass(); 

似乎每当我创建一个新的类实例时,该名称都以命名空间为前缀,例如:

$test = new A\B\MyClass();

如果我不想将名称空间用于其他类,会发生什么情况,例如:我想打电话

$test = C\D\AnotherClass();

目前这变为:

$test = A\B\C\D\AnotherClass();

导致错误。

1 个答案:

答案 0 :(得分:0)

对于 php7,您可以将代码包装在命名空间中,然后在全局命名空间中使用 use 调用它,使用命名空间声明如下示例中没有名称的命名空间。

namespace FRED\WILMA\BAMBAM {   
    const FW = 2;
    function fw() {
        echo "<br>fw<br>";
    }
 }  

 namespace BARNEY\BETTY { // Create Namespace and add function
     function bb() {
         echo "<br>bb<br>";
     }
 }

 namespace  { // use global namespace
     use FRED\WILMA\BAMBAM;
     use BARNEY\BETTY;
     BETTY\bb();
     BAMBAM\fw();
 }