PHP Acess $ 1 из preg replace для использования в функции класса - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь использовать информацию, хранящуюся в $ 1 и $ 2, в функции внутри класса.Но я не могу понять, как я должен это сделать.

$message = "[product=324243]Tooltip[/product]";

$original[0] = '/\[product=(.*?)\](.*?)\[\/product\]/';
$replacement[0] = $tooltip->getTooltip("$1","$2");

ksort($original);
ksort($replacement);

    $message = preg_replace($original, $replacement, $message);  

Это просто ничего не дает, если я заменяю $ 1 и $ 2 фактическими значениями, все работает нормально, поэтому ясно, что проблема заключается в том, что $ 1 и $ 2 не являются правильными переменными вне предзаменить функцию.

1 Ответ

0 голосов
/ 06 марта 2019

Для необходимой вам функциональности вам нужно будет использовать preg_replace_callback, чтобы вы могли динамически создать строку замены:

$message = preg_replace_callback($original, 
                                 function ($m) {
                                     return $tooltip->getTooltip($m[1], $m[2]);
                                 },
                                 $message);
...