Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

preg_replace_callback - callback функция в классе не вызывается

367
04 мая 2011 года
Meatcoins
303 / / 18.01.2006
Вопрос:
Как засунуть callback функцию в класс???

Когда callback-функция t() находится в классе, то callback-вызов не происходит, а если функция t() находится вне класса, то всё работает.

Далее идут пояснения.

Вот так не работает:
Код:
class test {
public $w;

public function __construct(){}

private function t($q){
print_r($q);
return "sss".$q[1]."ddd";
}

public function e(){
$this->w=preg_replace_callback("{(qwerty)}","this->t","111qwerty222");
}

}


$test=new test();

$test->e();

echo "Hello!\n<br>\n";

echo $test->w;

echo "\n<br>\nHello!\n<br>\n";

exit();


Вывод в браузере:
 
Код:
Hello!
<br>
111qwerty222
<br>
Hello!
<br>


А вот так работает:
Код:
function t($q){
//print_r($q);
return "sss".$q[1]."ddd";
}


class test {
public $w;

public function __construct(){}
/*
private function t($q){
print_r($q);
return "sss".$q[1]."ddd";
}
*/
public function e(){
$this->w=preg_replace_callback("{(qwerty)}","t","111qwerty222");
}

}


$test=new test();

$test->e();

echo "Hello!\n<br>\n";

echo $test->w;

echo "\n<br>\nHello!\n<br>\n";

exit();


Вывод в браузере:
 
Код:
Hello!
<br>
111sssqwertyddd222
<br>
Hello!
<br>
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог