Bug #4025: unable to use $this when calling array_walk from a class method.
| From: | php at tsquires dot demon dot co dot uk | Date: | Tue, 04 Apr 2000 08:59:00 +0000 |
| Subject: | Bug #4025: unable to use $this when calling array_walk from a class method. | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-17585@lists.php.net to get a copy of this message | ||
From: php@tsquires.demon.co.uk
Operating system: Linux RH6.1 / WinNT4
PHP version: 3.0.15
PHP Bug Type: Misbehaving function
Bug description: unable to use $this when calling array_walk from a class method.
I would like to do something like this:
class example {
function print_a_list ( $an_array )
{.......}
function do_something {
{....
array_walk( fruits, "$this->print_a_list" );
....}
}
The error returned is
Warning: Unable to call () - function does not exist in inc\example_class.php
To get it working I have done this
class example {
function do_something {
{
if(!defined('PRINT_FUNCTION'))
{
define('PRINT_FUNCTION', TRUE);
function print_a_list ( $an_array )
{.......}
}
....
array_walk( fruits, "print_a_list" );
....
} //end do_something
} //end example class
The define is to stop errors when I call the do_something method more than once for a single
instance of the example class. If I don't it gives me a Cannot Redelare error.
This is not really perfect becasue I have to declare print_a_list twice if I want to use it outside
the do_something function. Plus the code is abit messy.
I've asked experts-exchange.com and studied the docs but I can find a way around it. I've
also tried it using php4 with the same results.
Thanks for your time,
Tim.