Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
dokanscze
Člen
Avatar
dokanscze:7.8.2017 9:09

Ahoj, měl bych dotaz na význam tohoto zápisu volání method. Jaký je rozdíl mezi

$class->method1();
$class->method2();

a

$class->method1()->method2();

Díky za odpověď

 
Odpovědět
7.8.2017 9:09
Avatar
Odpovídá na dokanscze
Petr Štechmüller:7.8.2017 9:24

Ahoj,
druhý způsob se obvykle používá u návrhového vzoru Stavitel. Zápisy se téměř v ničem neliší, pouze signatura metod je rozdílná. Funkce bude zachována.
Zatím co method2 může mít jakýkoliv návratový typ, tak method1 musí podle druhé ukázky kódu vracet třídu samotnou (tedy její typ).
Tělo metody method1 tedy bude vypadat asi nějak takto:

DatovyTypTridy method1() {
    // nějaký výkonný kód

   return this; // Toto je zde důležité, tím dojde k možnosti řetězit metody za sebou
}
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
7.8.2017 9:24
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
dokanscze
Člen
Avatar
dokanscze:7.8.2017 9:35

Díky za odpověď

 
Nahoru Odpovědět
7.8.2017 9:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.