Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как в методе класса узнать есть ли метод класса?

Сообщения:  [1-2] 

 
 автор: Root   (13.11.2008 в 18:37)   письмо автору
 
   для: школьник   (13.11.2008 в 13:09)
 

__call вызывается как раз в том случае, если происходит обращение к несуществующему методу класса.
Т.е нет смысла в __call проверять существует ли метод, уже ясно что нет.
А вообще проверить можно с помощью method_exists()

  Ответить  
 
 автор: школьник   (13.11.2008 в 13:09)   письмо автору
 
 

При чем не дублируя и не клонируя обьекта класса

Пример:



class A {
    public function __call($name, $param)
    {
        $flag = false;
        if (/* Проверить существует ли метод $name в классе A */) {
            $flag = true;
        } else {
            $flag = false;
        }
        return $flag;
    }
    
}


try {    
    $a = new A();
    /* Возможности проверить существования метода на этом уровне - нет! */
    if (call_user_func_array(array($a, 'lalala'), array())) {} else {    
        throw new Exception('not exist method');

    }
        
} catch (Exception $e) {
    echo $e->getMessage();
    
}

  Ответить  

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования