Witam,
miałem identyczny problem i dopatrzyłem się innego rozwiązania, pewnie tobie nie pomoże (mamy juz czerwiec ) ale może ktoś inny będzie potrzebować takiej porady wiec podzielę się swoim fixem.
za błąd odpowiedzialne sa metody :
/*-------------------------------------------------------------------------*/
// Exec_events
/*-------------------------------------------------------------------------*/
function exec_character_data( $data )
{
call_user_func( $this->handler_character_data, $this, $data );
}
function exec_start_element( $tagname, $attr )
{
call_user_func( $this->handler_start_element, $this, $tagname, $attr );
}
function exec_end_element( $tagname )
{
call_user_func( $this->handler_end_element, $this, $tagname );
}
function exec_cdata_element( $data )
{
call_user_func( $this->handler_cdata_handler, $this, $data );
}
a raczej parametry które sa przekazywane :
wg manuala php : http://php.net/manual/en/function.call-user-func.php tą funkcją nie można przekazać referencji
niestety metody ktore sa wywoływane tym sposobem jej oczekują 1 parametru jako referencji a nie wartości wiec trzeba zmienić wywołanie funkcji call_user_func na wywołanie funkcji call_user_func_array
mój fix (pomógł w moim przypadku) :
/*-------------------------------------------------------------------------*/
// Exec_events
/*-------------------------------------------------------------------------*/
function exec_character_data( $data )
{
//function my_data_element( &$parser_obj, $data )
//call_user_func( $this->handler_character_data, $this, $data );
call_user_func_array( $this->handler_character_data, array(&$this, $data));
}
function exec_start_element( $tagname, $attr )
{
//call_user_func( $this->handler_start_element, $this, $tagname, $attr );
//function my_start_element( &$parser_obj, $name, $attr )
call_user_func_array( $this->handler_start_element, array(&$this, $tagname, $attr));
}
function exec_end_element( $tagname )
{
//call_user_func( $this->handler_end_element, $this, $tagname );
//function my_end_element( &$parser_obj, $name )
call_user_func_array( $this->handler_end_element, array(&$this, $tagname));
}
function exec_cdata_element( $data )
{
//call_user_func( $this->handler_cdata_handler, $this, $data );
//function my_cdata_element( &$parser_obj, $data )
call_user_func_array( $this->handler_cdata_handler, array(&$this, $data));
}
mam nadzieje ze i wam to pomoże.
pozdrawiam.