私は奇妙なことを得ました:
<?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)、より複雑な(名前空間、クラス階層、多くの機能など)これは機能しています。
質問: 間違っている/不安定な場合はどうすればよいですか? 何かが 1 回機能する場合、2 回機能する必要があります。
お願い: 本当に情報が必要です. 一週間探しています。別のプロジェクトで機能するため、ソリューションは単純でなければならないと思います(実際には、他のプロジェクトに関する情報を貼り付けることができません、申し訳ありません)
よろしく、そして毎回投稿してくれてありがとう、Oli