Раед,
в PHP нет такого понятия как вложенные функции, поэтому все функции в PHP создаются в глобальном пространстве, ваш код это всеравно что написать так:
function go($mycbPhp, $mycb) {
$repAll = "/(<\?(?:php)?.+\?>|<(?:c|m|=)%.+%e>)/sU";
$resaults = array();
if (!is_array($this->arrParsed)) return false;
$evals = $this->arrParsed;
foreach ($evals as $eval) {
if ($eval['type']=='php') {
$resaults[count($resaults)] = $mycbPhp($eval['string']);
} elseif ($eval['type']=='templated') {
$resaults[count($resaults)] = $mycb($eval['subtype'], $eval['string']);
}
}
return preg_replace_callback($repAll, 'replCB', $this->text);
}
function replCB() {
//сюда нужно передать переменную $resaults
static $i = -1;
$i++;
return $resaults[$i];
}
И естественно переменную вы передать не сможете, но есть лишь один вариант, это сделать переменную глобальной.
function go($mycbPhp, $mycb) {
$repAll = "/(<\?(?:php)?.+\?>|<(?:c|m|=)%.+%e>)/sU";
$resaults = array();
if (!is_array($this->arrParsed)) return false;
$evals = $this->arrParsed;
foreach ($evals as $eval) {
if ($eval['type']=='php') {
$resaults[count($resaults)] = $mycbPhp($eval['string']);
} elseif ($eval['type']=='templated') {
$resaults[count($resaults)] = $mycb($eval['subtype'], $eval['string']);
}
}
$GLOBALS['resaults'] = &$resaults; // переносим переменную в глобальное пространство
return preg_replace_callback($repAll, 'replCB', $this->text);
}
function replCB() {
//сюда нужно передать переменную $resaults
static $i = -1;
$i++;
return $GLOBALS['resaults'][$i]; // работаем с переменной в глобалке
}