PHP OO通过扩展覆盖常量

PHP OO通过扩展覆盖常量,php,class,oop,constants,extends,Php,Class,Oop,Constants,Extends,我有一件奇怪的事: <?php class LW_Base{ const MULTIPLE = 'LW_Base'; public static function name(){ return strtolower(static::MULTIPLE); } } class LW_Extend extends LW_Base{ const MULTITPLE = 'LW_Ext

我有一件奇怪的事:

<?php
    class LW_Base{
        const MULTIPLE = 'LW_Base';

        public static function name(){
            return strtolower(static::MULTIPLE);
        }
    }

    class LW_Extend extends LW_Base{
        const MULTITPLE = 'LW_Extend';
    }

    $t = new LW_Extend();

    echo $t::name().'==LW_Extend';
?>

这是一个小型(350行-NCLOC)PHP项目的精简代码。 输出应该是“lw_extend==lw_extend”,但实际上是“lw_base==lw_extend”

我发誓:在另一个更大、更复杂(名称空间、类Hirarchys、许多函数等)的项目中(1155行-NCLOC),这是可行的

问题:我做错了什么/不稳定?如果某件事只起一次作用,它就必须起两次作用

请:我真的需要一个信息。我要找一个星期。我认为解决方案必须简单,因为它适用于另一个项目(对不起,我实际上无法粘贴关于另一个项目的信息)

问候,谢谢你的每一个帖子,
奥利

两个班级的常量声明拼写错误

const MULTIPLE = 'LW_Base';

const MULTITPLE = 'LW_Extend';
您必须在与self

    class LW_Base{
        const MULTIPLE = 'LW_Base';

        public static function name(){
            return strtolower(self::MULTIPLE);
        }
    }

multiple!=多个
OH noooooooo:)谢谢:)哈哈。。。注意:在我写这篇文章之前,我咨询了另外两位朋友,也是优秀的PHP开发人员^^^^再次感谢:)它很有效