Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja wywolania zwrotnego dla array_walk
pawel81
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 28.04.2007

Ostrzeżenie: (0%)
-----


Witam;

Napisałem klasę tworzacą ścieżke do pliku lub katalogu.
Problem polega na tym, że nie wiem jak poradzić sobie z funkcją wywołania zwrotnego callback (jak mam ją przekazać do fumkcji array_walk) próbowałem self::callback(), $this->calback().

  1. <?php
  2. //require_once ( 'class.CallGetSet.php' );
  3.  
  4.  
  5. class dirCreator //extends callGetSet
  6. {
  7.    public $cataloguelist = null;
  8.    private $path = null;
  9.  
  10.    public function __construct()
  11.    {
  12.        #Siezka do pliku
  13.        define( 'PATH_BASE', dirname( __file__ ) );
  14.        #Separator
  15.        define( 'DS', DIRECTORY_SEPARATOR );
  16.        #Siezka do pliku z separatoren
  17.        $this->path = PATH_BASE . DS;
  18.    }
  19.  
  20.    public function __toString()
  21.    {
  22.        return __class__;
  23.    }
  24.    
  25.    public function createArray()
  26.    {
  27.        $this->cataloguelist = func_get_args();
  28.       }
  29.  
  30.    private function callback($catalogue)
  31.    {
  32.        $this->path .= $catalogue . DS;
  33.    }
  34.  
  35.    public function creator()
  36.    {
  37.        if ( $this->cataloguelist )
  38.        {
  39.            array_walk( $this->cataloguelist, self::callback() );
  40.        }
  41.        return $this->path;
  42.    }
  43. }
  44. $t = new dirCreator;
  45. $t->createArray('kat1', 'kat2', 'kat3');
  46. echo $t->creator();
  47. ?>



Przepisałem kod proceduralnie i dziala

  1. <?php
  2. define( 'PATH_BASE', dirname(__file__) );
  3. #Separator
  4. define( 'DS', DIRECTORY_SEPARATOR );
  5.  
  6. $path = PATH_BASE . DS;
  7. $cataloguelist = array('kat1', 'kat2', 'kat3');
  8.  
  9. function callback($catalogue)
  10. {
  11.    global $path;
  12.    $path .= $catalogue . DS;
  13. }
  14.  
  15. function creator($cataloguelist)
  16. {
  17.    global $path;
  18.    if ( $cataloguelist )
  19.    {
  20.        array_walk( $cataloguelist, 'callback' );
  21.    }
  22.    return $path;
  23. }
  24.  
  25. echo creator($cataloguelist);
  26. ?>


Ten post edytował pawel81 14.06.2009, 15:51:32
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:41