Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] metoda __call wyłapanie wszystkich wywołań
Forum PHP.pl > Forum > PHP > Object-oriented programming
eai
Kod PHP:
  1. <?php
  2.  
  3. class Catcher
  4. {
  5.  public $methods = array();
  6.  
  7.  public function save($name, $parm)
  8.  {
  9.  array_push($this->methods,array('name' => $name, 'parm' => $parm));
  10.  }
  11. }
  12.  
  13. class Object
  14. {
  15.  
  16.  public $object = false;
  17.  
  18.  public function __construct()
  19.  {
  20.  $this->object = new Catcher();
  21. }
  22.  
  23.  public function __call ($name, $parm)
  24.  {
  25. $this->object->save($name, $parm);
  26. return $this;
  27. }
  28. }
  29.  
  30. $obj = new Object();
  31. $obj->pierwszy()->drugi()->trzeci()->czwarty()->piaty();
  32.  
  33. echo '<pre>'; print_r($obj->object->methods); echo '</pre>';
  34. ?>


Rezultat:
Kod
Array
(
    [0] => Array
        (
            [name] => pierwszy
            [parm] => Array
                (
                )

        )

)


nie wyłapuje mi reszty :/ co jest?
nospor
a ja mam:
Kod
Array
(
    [0] => Array
        (
            [name] => pierwszy
            [parm] => Array
                (
                )

        )

    [1] => Array
        (
            [name] => drugi
            [parm] => Array
                (
                )

        )

    [2] => Array
        (
            [name] => trzeci
            [parm] => Array
                (
                )

        )

    [3] => Array
        (
            [name] => czwarty
            [parm] => Array
                (
                )

        )

    [4] => Array
        (
            [name] => piaty
            [parm] => Array
                (
                )

        )

)

smile.gif

Tylko ze ja mam php5 bez trybu kompatybilnosci z php4. Jak wlacze kompatybilnosc to mam to samo co ty.
Musisz pamietac, ze w trybie kompatybilnosci nie sa zwracane referencje obiektow, ale ich kopie, stad ten efekt
eai
Fakt. Dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.