вызов метода объекта через call_user_func_array и изменение самого объекта

bepcyc

Новичок
вызов метода объекта через call_user_func_array и изменение самого объекта

Проблема такая:

мне нужно вызывать методы объекта, которые могут менять состояние самого объекта
делать это необходимо не напрямую, а через некоторую функцию-обертку, потому как каждый раз при вызове метода нужно совершать некоторые действия

проблема в том, что я пытаюсь использовать call_user_func_array для этих целей и состояние объекта у меня не изменяется

пример:
PHP:
class Simple{
	var $id = 0;

	function foo()
	{
		$this->id++;
		return $this->id;
	}

	function bar()
	{
		$this->foo();
		return $this;
	}

}

$object = new Simple;
$result = call_user_func_array(array($object, 'foo'), null);
echo $object->id."<br>";
$result = call_user_func_array(array($object, 'bar'), null);
echo $result->id."<br>";
результаты будут
0
1

как видно, если вернуть $this, то всё будет как надо (разумеется)
но сам $object не изменится

можно ли это обойти?
 

white phoenix

Новичок
bepcyc
Я поэтому и спросил т.к. у меня вывелось "1 2" :) А что, нет возможности пятерку поставить?
 

bepcyc

Новичок
Автор оригинала: white phoenix
bepcyc
Я поэтому и спросил т.к. у меня вывелось "1 2" :) А что, нет возможности пятерку поставить?
проблема в том, что начальник считает, что пятерка слишком мало распространена и это будет сильно препятствовать продажам продукта
 

white phoenix

Новичок
bepcyc
Чем больше на свете таких директоров, тем больше будет препятствовать :D.
 

bepcyc

Новичок
Автор оригинала: Gas
call_user_func_array(array( & $object, 'bar'), null);
спасибо огромное
а я дебил уже этот амперсанд куда только не совал ;)

-~{}~ 20.12.05 14:45:

Автор оригинала: white phoenix
bepcyc
Чем больше на свете таких директоров, тем больше будет препятствовать :D.
он очень умный мужик и идеи у него крутые
сам-то он понимает, что его задумки только на 5-ке можно реализовывать, но с практической точки зрения он тоже прав

замкнутый круг ;(
 
Сверху