首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展外部类的命名空间

扩展外部类的命名空间
EN

Stack Overflow用户
提问于 2015-09-09 11:57:48
回答 1查看 326关注 0票数 0

这个问题是针对所有php naespace大师的。情况如下。

./Nampace.inc.php-使用命名空间创建b实例的类

代码语言:javascript
复制
<?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类继承自无命名空间

代码语言:javascript
复制
<?php
  // has no namespace definition and is an external class
  class A {}
?>

./b-wns.class.php -类具有扩展

代码语言:javascript
复制
<?php
  namespace foo;
  class B extends A {}
?>

在调用“namespace.inc.php”时,会遇到外部类导致的命名空间错误,a没有名称空间定义集,将childs命名空间作为默认设置。

代码语言:javascript
复制
$ 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?中进行调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 12:12:45

按照class B extends \A {}的建议,简单地使用@u_mulder并不起作用,但是与名称空间的别名定义结合起来,它似乎是有效的。

./b-wns.class.php

代码语言:javascript
复制
<?php
  namespace foo;
  use \A as A; // needs to be added otherwise 
               // extending external class A will not work
  class B extends A {}
?>

我还不知道这是否会导致其他错误,所以请随意添加任何评论。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32478962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档