overload extension

php.internals

Unnamed Person

22 years ago
The methods of an object that has been passed to the overload() function lose their ability to have parameters passed by reference. For example: class Foo { function hello(&$array) { $array[] = "hello"; } } $array = null; $foo = & new foo(); $foo->hello($array); print_r($array) Output: Array ( [0] => hello ) class Foo extends PEAR_Autoloader { function hello(&$array) { $array[] = "hello"; } } $array = null; $foo = & new foo(); $foo->hello($array); print_r($array) Output: Nothing!

Dennis Sterzenbach

22 years ago
Hi,
> The methods of an object that has been passed to the overload() > function lose their ability to have parameters passed by > reference. For > example: > > class Foo > { > function hello(&$array) > { > $array[] = "hello"; > } > } > > $array = null; > $foo = & new foo(); > $foo->hello($array); > print_r($array) > > Output: > Array > ( > [0] => hello > ) > > class Foo extends PEAR_Autoloader > { > function hello(&$array) > { > $array[] = "hello"; > } > } > > $array = null; > $foo = & new foo(); > $foo->hello($array); > print_r($array) > > Output: > > Nothing!
I'm not into this topic, but I suppose you should send a bug report about it (visit http://bugs.php.net and enter info there). This should then enable the php internal people to refer to that bug when fixing the problem and committing the changes needed. Regards Dennis

Alan Knowles

22 years ago
There is already a bug report on it, however It sounds like it's unlikely to be fixed in PHP4... Regards Alan LingWitt@insightbb.com wrote:
> The methods of an object that has been passed to the overload() function > lose their ability to have parameters passed by reference. For example: > > class Foo > { > function hello(&$array) > { > $array[] = "hello"; > } > } > > $array = null; > $foo = & new foo(); > $foo->hello($array); > print_r($array) > > Output: > Array > ( > [0] => hello > ) > > class Foo extends PEAR_Autoloader > { > function hello(&$array) > { > $array[] = "hello"; > } > } > > $array = null; > $foo = & new foo(); > $foo->hello($array); > print_r($array) > > Output: > > Nothing! >
-- Can you help out? Need Consulting Services or Know of a Job? http://www.akbkhome.com

Unnamed Person

22 years ago
This may be where the problem: zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args); Would this do the trick? zend_get_parameters_array(ZEND_NUM_ARGS(), args); On Wednesday, Oct 22, 2003, at 20:47 America/New_York, Alan Knowles wrote:

Alan Knowles

22 years ago
This does appear to fix it.. (diff attached) - however I'm not sure if there are any knock on effects that this may cause????? Regards alan LingWitt@insightbb.com wrote:
> This may be where the problem: > > zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args); > > Would this do the trick? > > zend_get_parameters_array(ZEND_NUM_ARGS(), args); > > On Wednesday, Oct 22, 2003, at 20:47 America/New_York, Alan Knowles wrote: > >> There is already a bug report on it, however It sounds like it's >> unlikely to be fixed in PHP4... >> >> Regards >> Alan >> >> LingWitt@insightbb.com wrote: >> >>> The methods of an object that has been passed to the overload() >>> function lose their ability to have parameters passed by reference. >>> For example: >>> class Foo >>> { >>> function hello(&$array) >>> { >>> $array[] = "hello"; >>> } >>> } >>> $array = null; >>> $foo = & new foo(); >>> $foo->hello($array); >>> print_r($array) >>> Output: >>> Array >>> ( >>> [0] => hello >>> ) >>> class Foo extends PEAR_Autoloader >>> { >>> function hello(&$array) >>> { >>> $array[] = "hello"; >>> } >>> } >>> $array = null; >>> $foo = & new foo(); >>> $foo->hello($array); >>> print_r($array) >>> Output: >>> Nothing! >> >> >> >> -- >> Can you help out? >> Need Consulting Services or Know of a Job? >> http://www.akbkhome.com >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >
-- Can you help out? Need Consulting Services or Know of a Job? http://www.akbkhome.com