PHP包含具有相对限定符

时间:2017-08-07 13:44:42

标签: php oop namespaces

我正在摸索着这个。并不是说它不起作用......这很奇怪。

OS:  debian latest
php: 5.6 

以下应该工作......

Namespace Client\Error;
class ErrorHandler{
 /**
     * @param $errorType
     * @return FatalError|InputError|SecurityError|php
     */
    private function getHandler($errorType)
    {
        $debug = require_once __DIR__ . "/Handler/$errorType.php";
        $errorType = "Handler\\$errorType";
        return new $errorType();
    }
    public function test(){
        $this->getHandler('InputError');
    }
}
文件夹中的

Handler里面是一个空类:

namespace Client\Error\Handler;

class InputError
{

}

当我在实例化中使用绝对命名空间时,此代码有效($ errorType =" Client \ Error \ Handler \ $ errorType")。但我想使用相对的一个。只为da lulz。它们是文件夹Handler中的类。 我尝试使用

在类顶部使用的命名空间
Namespace Client\Error;
use Client\Handler;

没了。甚至没有类名或没有它..它是一个功能,我不知道你什么时候包括一个类或一些奇怪的错误我做了。

ps:我正在尝试创建一个新类时出错:

  

致命错误:Class' Handler \ InputError'没找到....

0 个答案:

没有答案