• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bardzo dziwny problem - rekurencja zwraca nulla mimo, że powinna obiekt - dowód

0 głosów
284 wizyt
pytanie zadane 9 kwietnia 2020 w PHP przez XiverKi Bywalec (2,050 p.)

Dzień dobry,

Mam dziwny problem.

Kod:

private function saveResource($token) {
    try {
        $resource = $this->createResource();
        $api = new ResourceApi();
        $resource = $api->saveAllResource($ticket, $resource); // TUTAJ JEST OBIEKT nawet w przypadku rekurencji
        return $resource;
    } catch (Exception $e) {
        $this->saveResource($token); // rekurencja
    }
}

////
$res = $this->saveResource($token);
var_dump($res); // otrzymuje nulla!

Co dziwne, nulla otrzymuje tylko w momencie kiedy wykona się rekurencja - czyli jeżeli nie wpada w CATCH i nie musi jeszcze raz wykonać tej metody to otrzymuje piękny obiekt. Gdy tylko wykona się rekurencja wartość zwrócona to null.

Mimo, że podczas dumpowania jeszcze przed zwróceniem (w funkcji) wskazuje na to, że mam obiekt.

 

Jakie porady? Coś przeoczyłem?

1 odpowiedź

0 głosów
odpowiedź 9 kwietnia 2020 przez XiverKi Bywalec (2,050 p.)

Ok, zauważyłem błąd, w catch również powinien być return:

catch (Exception $e) {
        $this->saveResource($token); // rekurencja
}

 

Jednakże, nie do konca rozumiem dlaczego. Czy ktoś w prostych słowach jest w stanie naprowadzić mnie na odpowiedź?

Podobne pytania

0 głosów
0 odpowiedzi 294 wizyt
pytanie zadane 10 grudnia 2017 w PHP przez Assasz Nałogowiec (30,460 p.)
0 głosów
0 odpowiedzi 1,412 wizyt
pytanie zadane 26 stycznia 2021 w C i C++ przez loczusek Nowicjusz (170 p.)
0 głosów
1 odpowiedź 1,830 wizyt
pytanie zadane 18 kwietnia 2017 w C i C++ przez tadantuda10 Nowicjusz (120 p.)

93,667 zapytań

142,591 odpowiedzi

323,135 komentarzy

63,193 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...