从类内部获取别名


Getting the alias name from inside the class

假设我有一个带有方法printname()的类Foo,然后我为Foo创建一个别名Bar,并调用:Bar::printname(),我想让这个电话在屏幕上打印"酒吧"。

<?php
class Foo {
    function printname () {
        ...
    }
}
class_alias('Foo', 'Bar');
Bar::printname(); // Print "Bar"

简而言之,我希望类Foo具有一个函数,该函数打印调用它时使用的别名的名称,而不是类(Foo)的名称。

感谢:)

你不能,但我一直认为类别名是个愚蠢的主意。

如果你真的需要给一个类取别名,你可以欺骗并使用继承。

class Foo {
    public static function printname() {
        echo get_called_class();
    }
}
class Bar extends Foo { }
Bar::printname(); // Print "Bar"