Передать значение из одной функции в другую

Здравствуйте.
Помогите пожалуйста решить вопрос.

Есть одна функция которую я могу вызвать несколькими способами назовем ее test_1 в этой функции есть preg_replace_callback($regexp, “test_2”, $str);
Получилось у меня что то вроде такого

function test_1($parameter_1){
  function test_2($parameter_2){
   $var = "Тут что то"; // переменную которую нужно передать
   return parameter_1[1] ... parameter_1[n]; // тут я возвращаю то что нужно для замены с помощью регулярки
  }
  $str_str = preg_replace_callback($regexp, "test_2", $str);
  $var; // сюда нужно передать значение из test_2
}

Вопрос как мне из функции test_2 передать значение переменной $var в функцию test_1 для дальнейшей с ней работы? Значение переменной может меняться и использование global мне не подходит так как работает не корректно для обновления значения данной переменной.

А что на самом деле происходит-то, откуда берется “что-то”?)

“Что то” это один из параметров передаваемые в test_2
Суть такая я беру строку прогоняю её через регулярку и … (сначала код)

function test_1($parameter_1){
  function test_2($parameter_2){
   $var = $parameter_2[0]; // переменную которую нужно передать
   return parameter_1[1]; // тут я возвращаю то что нужно для замены с помощью регулярки
  }
  $str_str = preg_replace_callback($regexp, "test_2", $str);
 
  if($var == "Значение"){
    ...
  } else {
    ...
  }
}

… и параметр $parameter_2[0] я записываю в переменную $var и далее уже в условиях я смотрю если значение соответствует то я выполняю один вариант если нет то уже другой кода. А в return возвращается parameter_1[1] это то на что должно заменится и что я получаю на выходе с учетом замены.

Всё решение подсказали мне. Перепишу на анонимную функцию и использовать буду use(&$var)

С use + & в анонимной функции можно достать ссылку на переменную уровнем выше.
PHP: Anonymous functions - Manual

function updateYear(string $text, int $newYear): string
{
    $year = null;
    
    $result = preg_replace_callback(
        '/(\-)(\d\d\d\d)/', 
        function (array $matches) use ($newYear, &$year): string {
            $year = (int) $matches[2];
            return $matches[1] . (string) $newYear;
        }, 
        $text
    );
    
    return "Replaced $year in '$text' => '$result'";
}

echo updateYear('(c) 1970-2022', 2023) . PHP_EOL;
echo updateYear('(c) 1999-2022', 2023) . PHP_EOL;

https://3v4l.org/RovuX

Спасибо большое за помощь. Всё получилось.