Maciej Lorenc

Maciej Lorenc programista
aplikacji testowych

Temat: Pytanie o call'a

Mam klasę, w której został zaimplementowany mechanizm, którego idea wygląda tak:
 public function __call($obj_name, $args) { if (coś) { coś; } else { parent::__call($obj_name, $args); } } 
Klasa ta dziedziczy po klasie, która udostępnia pewne metody do wykonania. Owa klasa-matka posiada także funkcję __call. Wywołuję sobie w tej klasie jakąś metodę:
 $this->metoda(); 
Owa metoda powinna zwracać wynik boolowski. Za każdym razem robiąc var_dump'a dostaję jednak nulla (metoda się wykonuje). Okazuje się, że jak wywalę z tej klasy przedstawiony na początku kod, to efekt jest taki, jak spodziewany, czyli dostaję true lub false. Jak to jest z tym magicznym call-em? Dlaczego odpowiedź z funkcji mi "ucieka"?

konto usunięte

Temat: Pytanie o call'a

Call nic zwraca?

...
else { return parent::__call(...) }
Michał Wachowski edytował(a) ten post dnia 09.04.11 o godzinie 15:18
Maciej Lorenc

Maciej Lorenc programista
aplikacji testowych

Temat: Pytanie o call'a

Metoda wywołana tak:
$this->metoda()
nic nie zwraca, pomimo, że jest wykonywana.
Jak robię vardumpa z tego wywołania, to dostaję nulla. Tymczasem metoda zwraca tylko true lub false. Że metoda jest wykonywana poprawnie mam całkowita pewność.

konto usunięte

Temat: Pytanie o call'a

masz

public function __call($obj_name, $args) {
if (coś) {
coś;
}
else {
parent::__call($obj_name, $args);
}
}


powinieneś

public function __call($obj_name, $args) {
if (coś) {
coś;
}
else {
return parent::__call($obj_name, $args);
}
}
Maciej Lorenc

Maciej Lorenc programista
aplikacji testowych

Temat: Pytanie o call'a

Najprostsze błędy są najtrudniejsze :/
Dzięki wielkie :)

Następna dyskusja:

[pytanie] Rozdzielanie HTML...




Wyślij zaproszenie do