array walk and class member functions

From: Date: Wed, 12 Jan 2005 12:13:34 +0000
Subject: array walk and class member functions
Groups: php.general 
Request: Send a blank email to php-general+get-206167@lists.php.net to get a copy of this message
Hi I'm batting my head against a wall on this one... I have a class that has a constructor which sets some initial conditions, and then a public function that does some work. I want to be able to call this function from an external array_walk call, but when I try and reference it as $myClass->myFunction in the array_walk call, I get an error back saying that this is an invalid function. eg) <?php include "../includes/aClass.class"; $myArray = array("item1"=>"firstItem", "item2"=>"secondItem"); $myClass = new aClass; array_walk($myArray,'$myClass->aMemberFunction'); ?> As a workaround, I redifined the class so that there was a public function which made the array_walk call with the worker function defined internally as follows, but this throws another issue in that if I create multiple instances of the class then I get an error to say that the internal function is already defined ...
*Fatal error*: Cannot redeclare aFunction() (previously declared in /usr/local/apache2/htdocs/includes/functions.php:23) in */usr/local/apache2/htdocs/includes/functions.php* on line *23*
class aClass {
    some other stuff, constructor etc
public function aPublicFunction($anArray) {
      global $aRetrunString;
           function aFunction($value, $key)
      {
           global $aReturnString;
           $aReturnString = $aReturnString.$value;               }
      array_walk($anArray,'aFunction');
      return $aReturnString;
} } Can anyone help me to get either solution to a working state? By the way... apache 2.0.49 php-5.0.2 Thanks very much Tom

« previous php.general (#206167) next »