这个问题是针对所有php naespace大师的。情况如下。
./Nampace.inc.php-使用命名空间创建b实例的类
<?php
require_once("a-wons.class.php");
require_once("b-wns.class.php");
// create an instance of class B with own namespace defined
$b = new foo\B();
?>./a-wans.class.php-类,b类继承自无命名空间
<?php
// has no namespace definition and is an external class
class A {}
?>./b-wns.class.php -类具有扩展
<?php
namespace foo;
class B extends A {}
?>在调用“namespace.inc.php”时,会遇到外部类导致的命名空间错误,a没有名称空间定义集,将childs命名空间作为默认设置。
$ php namespace.inc.php
PHP Fatal error: Class 'foo\A' not found in b-wns.class.php on line 5我知道我可以将类命名空间设置为例如namespace bar;,并使用类似于namespace.inc.php中的use bar\A as A;的别名定义,但作为,我不想修改A类,因为它可能是一个外部类和,我想保留自己的名称空间,我只是问自己
可以伪装类‘一个命名空间,在类b中保留我自己的名称空间,在namespace.inc.php?中进行调用。
发布于 2015-09-09 12:12:45
按照class B extends \A {}的建议,简单地使用@u_mulder并不起作用,但是与名称空间的别名定义结合起来,它似乎是有效的。
./b-wns.class.php
<?php
namespace foo;
use \A as A; // needs to be added otherwise
// extending external class A will not work
class B extends A {}
?>我还不知道这是否会导致其他错误,所以请随意添加任何评论。谢谢。
https://stackoverflow.com/questions/32478962
复制相似问题