Bug #4025: unable to use $this when calling array_walk from a class method.

From: 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.

« previous php.dev (#17585) next »