这个问题是因为我在查找实际命名空间时遇到错误:
父类命名空间\ demo \ parent \ config()(数百行)
child class namespace \ demo \ child1 \ config()扩展\ demo \ parent \ config()(空)
child class namespace \ demo \ child2 \ config()扩展\ demo \ parent \ config()(空)
但是...我发现这不是一个问题,但是我做了a)没有完全量化我的class_exists()(假设类将采用上面的命名空间,但它不),我在我的class_exists行中有一个类型。 ..
无论如何,这种解决方法适用于获取实际的名称空间:
解决方法
如果我使用getnamespace:
function getNameSpace()
{
$currentClass = get_class($this);
$refl = new \ReflectionClass($currentClass);
$namespace = $refl->getNamespaceName();
return $namespace . '\\';
}然后像下面这样在正确的命名空间中实例化类
$module1 = '\\' . self::getNameSpace() . 'Module1';
new $module1并在静态类的情况下:
self::callConfig('GetOptionsName');其中“callConfig”=
function callConfig($method,$par='')
{
if ('' == $par)
{
return call_user_func(array(self::getNameSpace() . 'Config',
$method));
}
else
{
return call_user_func_array(array(self::getNameSpace() . 'Config',
$method),$par);
}
}