Возникли небольшие проблемы с этим статическим «наследованием» в php 5.3. Мне нужно проверить, существует ли статическая функция в статическом классе, но мне нужно проверить ее из родительского статического класса.
Я знаю вphp 5.3 Я могу использовать ключевое слово static для имитации ключевого слова this.Я просто не могу найти способ проверить, существует ли функция.
Вот пример:
// parent class
class A{
// class B will be extending it and may or may not have
// static function name 'func'
// i need to test for it
public static function parse(array $a){
if(function_exists(array(static, 'func'){
static::func($a);
}
}
}
class B extends A {
public static function func( array $a ){
// does something
}
}
Так что теперь мне нужно выполнить B::parse();
, идея в том, что если подкласс имеетфункция, она будет использоваться, в противном случае она не будет использоваться.
Я пытался:
function_exists(static::func){}
isset(static::func){}
Эти 2 не работают.
Любые идеи, как это сделатьэтот?Кстати, я знаю о возможности передачи лямбда-функции в качестве обходного пути, это не вариант в моей ситуации.
У меня такое ощущение, что есть очень простое решение, о котором я сейчас не могу думать.
Теперь мне нужно позвонить