覆盖PHP中扩展类中的命名空间用法

时间:2016-10-07 11:15:22

标签: php oop inheritance namespaces

在扩展类

中覆盖名称空间使用情况

是否可以在不重写扩展类中的函数的情况下覆盖父类的已使用命名空间?

为了澄清,我写下了一个例子:

我有两个这样的课程:

namespace one;
class hey
{
    public static function say()
    {
        echo "hey";
    }
}

namespace two;
class hey
{
    public static function say()
    {
        echo "ho";
    }
}

现在我使用此类中的命名空间:

use one\hey;
class saysomething
{
    public static function main()
    {
        hey::say();
    }
}

现在我想扩展最后一节课:

class extended extends saysomething
{
}

extended::main();

在这个课程中我想使用命名空间"两个\一个"没有覆盖功能,是否可能? *它是,怎么样? 谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

您必须在extended::main()课程中定义extended,如下所示:

use two\hey;

class extended extends saysomething
{
    public static function main()
    {
        hey::say(); // will call two/hey::say method
    }
}

命名空间在这里没有帮助。