PHP 扩展一级文件夹返回

标签 php namespaces

我有一个基础抽象类,比如 Base.php位于 /lib/Helper/Base.php .现在,我还有一个类(class),比如说 Awesome.php位于 /lib/Helper/Awesome/Awesome.php , 这个类需要扩展 Base .

我已经定义了我的命名空间如下:

Base.php

<?php namespace Helper;

abstract class Base
{

}

Awesome.php
<?php namespace Helper\Awesome;

class Awesome extends Base
{

}

现在,这表示类 Base没有找到。我尝试使用 require_once和/或 includeBase.php的路径他们也没有工作。我究竟做错了什么?

最佳答案

您正在包含该文件,这是正确的做法。但你也在使用
命名空间。

命名空间不是文件夹,这意味着命名空间“Helper”不是文件夹而是逻辑层次结构。为了使用类Base在他逻辑 命名空间 Helper Awesome类需要使用完整的逻辑路径扩展基类,即 \Helper\Base .

    namespace Helper\Awesome;

class Awesome extends \Helper\Base {

}

或使用 use/as关键字代替(如 c# using 语句)。
  namespace Helper\Awesome;
use \Helper\Base as Base;
class Awesome extends Base
{

}

更多信息可以在 php.net 站点上找到。
这里是直接引用:http://php.net/manual/en/language.namespaces.importing.php

关于PHP 扩展一级文件夹返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661827/

相关文章:

.net - WCF官方教程中的[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]是什么意思?

javascript - 方案命名空间使用约定。与Javascript相比

clojure - 如何找到符号的完全限定 namespace ?

actionscript-3 - Actionscript 3.0 命名空间在应用程序描述 rune 件中无效

用于扩展另一个产品的 C# 命名空间

javascript - PHP - 缓存 JavaScript

php - 从表中选择所有其他查询未返回结果的表

PHP - 移动到 AWS S3 后删除本地文件 - 文本文件忙错误

php - PDO:数据库离线时连接超时

php - 如何修改现有的 javascript 以显示包括美分在内的货币值?