Как узнать, является ли обратный вызов определенным методом? - PullRequest
1 голос
/ 23 декабря 2011

В какой-то момент у меня есть:

$callback = array(&$this, 'foo');

Как я могу узнать позже, если $callback метод foo?

if($callback == array(&$this, 'foo')) не делает 'кажется, работает

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

Обратные вызовы - это просто массивы, а имя метода - строка.Просто проверьте второй элемент массива:

if ($callback[1] == 'foo')
1 голос
/ 23 декабря 2011
<?php
class A
{
    public function Test1()
    {
        $callback = array(&$this, 'foo');
        var_dump($callback == array(&$this, 'foo'));
    }

    public function foo()
    {
    }   
}

$a = new A();
$a->Test1();
?>
...