Устаревший: preg_replace (): Модификатор / e устарел, вместо этого используйте preg_replace_callback

Мне нужна небольшая помощь. Поскольку preg_replace устарел, мне нужно преобразовать все my preg_replace в preg_replace_callback

Что я пробовал:

Изменить:

 $template = preg_replace ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#ies", "\$this->check_module('\\1', '\\2')", $template ); 

Для того, чтобы:

 $template = preg_replace_callback ( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#isu", return $this->check_module($this['1'], $this['2']); $template ); 

Ошибка:

 Parse error: syntax error, unexpected 'return' 

Обратный вызов должен быть функцией, принимающей один параметр, который представляет собой массив совпадений. Вы можете передать любой ответ , включая анонимную функцию .

 $template = preg_replace_callback( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#isu", function($matches) { return $this->check_module($matches[1], $matches[2]); }, $template ); 

(PHP> = 5.4.0 требуется для использования $this внутри анонимной функции)