Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重写特定类的PHP命名空间_Php_Namespaces - Fatal编程技术网

重写特定类的PHP命名空间

重写特定类的PHP命名空间,php,namespaces,Php,Namespaces,如果我有一个PHP名称空间,如下所示: <?php namespace A\B; $test = new MyClass(); 如果我不想为另一个类使用名称空间,例如,我想调用 $test = C\D\AnotherClass(); 目前这变成: $test = A\B\C\D\AnotherClass(); 这将导致一个错误。对于php7,您可以在名称空间中封装代码,然后在全局名称空间中使用use调用它,根据下面的示例,使用无名称名称空间声明 namespace

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

<?php

   namespace A\B;

   $test = new MyClass(); 
如果我不想为另一个类使用名称空间,例如,我想调用

$test = C\D\AnotherClass();
目前这变成:

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

这将导致一个错误。

对于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();
 } 
名称空间FRED\WILMA\BAMBAM{
常数FW=2;
函数fw(){
回声“
fw
”; } } 名称空间BARNEY\BETTY{//创建名称空间并添加函数 函数bb(){ 回声“
bb
”; } } 名称空间{//使用全局名称空间 使用FRED\WILMA\BAMBAM; 使用BARNEY\BETTY; 贝蒂\bb(); BAMBAM\fw(); }
您需要在类中添加一个前导\。e、 g.
$test=new\C\D\AnotherClass()
或者您可以使用
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();
 }