Php 类_别名()是否可以撤消?

Php 类_别名()是否可以撤消?,php,Php,假设在单元测试中,我想使用class\u alias()来替换一个通常使用的假类: class_alias('MyFakeTestingClass', 'Some\Real\Class\Somewhere'); 是否有任何方法可以撤消此操作,以便Some\Real\Class\where可以在之后恢复正常使用?这不起作用: class_alias('Some\Real\Class\Somewhere', 'Some\Real\Class\Somewhere'); 你不是走错方向了吗?我以前使

假设在单元测试中,我想使用
class\u alias()
来替换一个通常使用的假类:

class_alias('MyFakeTestingClass', 'Some\Real\Class\Somewhere');
是否有任何方法可以撤消此操作,以便
Some\Real\Class\where
可以在之后恢复正常使用?这不起作用:

class_alias('Some\Real\Class\Somewhere', 'Some\Real\Class\Somewhere');

你不是走错方向了吗?我以前使用过
class\u alias
,现在仍然记得我有权访问原始类/名称空间

class Foo 
{
    // Foo
}

// Foo is the original class, placed first.
class_alias('Foo', 'Bar');

var_dump(new Bar, new Foo);

没有。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

你能克隆原始类吗?不能克隆,即使使用runkit也不行…为什么要撤销它?即使创建了
Class\u别名
,您也无法访问
new Some\Real\Class\where
。@Dagon:克隆是什么意思?@PHPglue:不。现在,这样做可以得到一个
MyFakeTestingClass
的实例。这有点让人困惑,但不,我认为用测试类覆盖代码库中其他地方的类是正确的。在您的示例中,您不能做的是获取一个已被别名屏蔽的预先存在的
Bar
类。