Замена устаревшей в PHP 7.2 функции

Главные вкладки

Аватар пользователя wam wam 16 ноября 2018 в 14:51

Здравствуйте.
Использую на сайте модуль Spoiler и при переходе на PHP 7.2
ругается на устаревшую функцию create_function которая используется в модуле:

<?php
function _spoiler_filter_process($text) {
  
// Keep it simple. Use of the lazy quantifier allows use of multiple spoiler
  // blocks but does not address nested spoilers.
  
return preg_replace_callback(
    
'#\[\s*spoiler\s*\](.*?)\[\s*/\s*spoiler\s*\]#is',
   
create_function('$matches''return theme("spoiler", array("spoiler" => $matches[1]));'),
    
$text
  
);
}
?>

Вот Здесь нашел как заменить ее анонимной функцией, но не получается, т.к в php не силен. Помогите кто нибудь.

Лучший ответ

Аватар пользователя fairrandir fairrandir 16 ноября 2018 в 15:30
1
<?php
  
return preg_replace_callback(
    
'#\[\s*spoiler\s*\](.*?)\[\s*/\s*spoiler\s*\]#is',
    function (
$matches) {
      return 
theme("spoiler", array("spoiler" => $matches[1]));
    },
    
$text
  
);
?>

Комментарии

Аватар пользователя fairrandir fairrandir 16 ноября 2018 в 15:30
1
<?php
  
return preg_replace_callback(
    
'#\[\s*spoiler\s*\](.*?)\[\s*/\s*spoiler\s*\]#is',
    function (
$matches) {
      return 
theme("spoiler", array("spoiler" => $matches[1]));
    },
    
$text
  
);
?>