Ошибка из-за повторного вызова callback ф-ции

[SDem]

Новичок
Ошибка из-за повторного вызова callback ф-ции

Добрый день всем.Есть такая конструкция:

SomeClass {
function foo($some_script){
function buffer($buff){
}
ob_start("buffer");
eval($some_script);
....
...
$s=ob_get_content();
ob_end_flush();
return $s;
}
}
Собственно в чём суть вопроса, точнее вопросов.

Указанная функция "foo" вызывается несколько раз и соответственно выдаёт ошибку о повторной регистрации одноимённой функции buffer.Вынести функцию в класс не получается.. во всяком случае я не знаю как правильно указать имя в таком случае,чтоб она ещё и увидилась.Отсюда возникло 2 вопроса:

1)Как обойти такую проблему без выноса функции buffer за пределы класса.Задача состоит в том чтоб выполнить код и вывести в переменную $s;

2)Рассматривая чисто теоретически данный случай , когда в вункции класса необходимо использовать функцию пхп,требующую в свою очередь "callback" функции, всё же хотелось бы найти вариант как указать в качестве этой самой колбэк ф-ции- функцию класса.
 

[SDem]

Новичок
Автор оригинала: Vander
$this->buffer()
SomeClass::buffer()

?
Оба варианта работают...Но только в том смысле, что вся инфа и правда буферизируется.. Однако $buff в функцию buffer не передаётся.
Автор оригинала: McSimm
ob_start(array(&$this, 'buffer'))
ob_start(array('SomeClass', 'buffer')) // статический метод
Та же фигня, не передаётся параметр функции.. Но в твоём случае я честно говоря ещё и не до конца понимаю механизм..Ты как дошел до того, что можно передать имя класса и функции в массиве?
 
Сверху