いくつかの子クラスから呼び出す必要があるクラスに静的関数があります。その関数で使用できるようにするには、呼び出し元の子クラスからの定数が必要です。これらの定数を他の場所で使用できるようにするために、子クラスにはその定数の値を返す関数があります(php5.2.9)。
ただし、親クラスにいるときは、関数を使用したり、直接使用したりすることなく、その定数にアクセスできないようです。それはphp5.2.9でも可能ですか、それとも引数として渡す必要がありますか?
これはコードの単純なバージョンです:
abstract class ParentClass {
static function DoSomething() {
$not_working = self::show_const();
$not_working_either = self::SOME_CONST;
return 'working';
}
}
class ChildClass extends ParentClass {
const SOME_CONST = 'some string';
function show_const() {
return self::SOME_CONST;
}
}
$result = ChildClass::DoSomething();
編集:生成されたエラーは次のとおりです。
- 未定義のメソッドParentClass::show_const()の呼び出し(関数の場合)
- 未定義のクラス定数'SOME_CONST'(self :: SOME_CONSTを使用)