【发布时间】:2013-06-03 07:47:58
【问题描述】:
我有一件奇怪的事情:
<?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”。
我发誓:在另一个更大的项目(1155 行 - NCLOC)中,更复杂的(命名空间、类层次结构、许多功能......)这是有效的。
问题:我做错了什么/不稳定?如果某事工作一次,它必须工作两次。
请:我确实需要一个信息。我正在寻找一个星期。我认为解决方案必须简单,因为它适用于另一个项目(我实际上无法粘贴有关该其他项目的信息,抱歉)
问候,并感谢您的每一次发帖, 奥利
【问题讨论】:
-
MULTITPLE != MULTIPLE
标签: php class oop constants extends