abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 6
včera 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 1
včera 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
včera 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
včera 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 7
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (11%)
 (2%)
 (73%)
 (3%)
 (10%)
Celkem 387 hlasů
 Komentářů: 31, poslední včera 19:19
Rozcestník
Reklama

Dotaz: Problém s vrácením dat z class v php

22.11.2013 00:54 David
Problém s vrácením dat z class v php
Přečteno: 766×
Ahoj. Chtěl bych se zeptat, když v metodě uvnitř třídy "class1" mám return new class2(), a class2() mi vrací data pomocí __toString(), tak vše funguje, jenže pokud potřebuji jít dál, a uvnitř class2() dám return new class3() tak přesto že vracím zase v class3() data pomocí __toString(), do class1 se už nedostanou. Poradí někdo?

Odpovědi

22.11.2013 05:47 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Stačí s tím objektem zacházet jako se stringem, například zřetězit s prázdným stringem.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Tarmaq avatar 22.11.2013 09:26 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Anebo pouzit strval(). Vysledek by mel vypadat nejak takhle:
class class2
{
  private $foo;
  function __construct()
  {
    $this->foo = new class3;
  }
  function __toString()
  {
    return strval($this->foo);
  }
}
Don't panic!
22.11.2013 09:55 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Zrovna tady jsem se dočetl, že tvé řešení není "správné". Metoda __toString() nemá vracet proměnné ale má volat metody :-( A řádek private $foo; tam taky nemá být... Tak jak to tedy opravdu je?

PS: Jak amatér s rozbitou držkou domů se vrátil, když učil orla létat :-D
22.11.2013 10:20 Kit
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Četl jsi to ze špatného zdroje a navíc jsi to i špatně pochopil.
22.11.2013 10:24 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
No na 99% jsi to psal ty, nemůžu to teď najít..
Tarmaq avatar 22.11.2013 10:26 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
tusim ze mas na mysli tohle, je to tak?
Don't panic!
22.11.2013 12:09 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
tusim ze mas na mysli tohle, je to tak?
Ano, tam jsem to četl...
Tarmaq avatar 22.11.2013 12:16 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
A muzes tedy citovat? Nebo zkopirovat Link daneho prispevku a vlozit ho sem?
Don't panic!
22.11.2013 12:26 David
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Sorry to není ono, ale to jsem taky četl, bylo tam něco ve smyslu, že proměnné v class nejsou uložiště a tak by měli vracet přímo výsledek a být volány až když jsou potřeba. A ty proměnné když nejsou definovány tak se tam nepíšou. Ale četl jsem toho hodně a nevím kde to bylo a mimo jiné tohle mi uvízlo v hlavě...
22.11.2013 12:50 Kit
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Zdá se, že jsi tu větu vytrhl z kontextu. Zřejmě jsem někde psal o anemickém doménovém modelu, který z objektu dělá úložiště. Možná jsi to zkombinoval s jiným mým výrokem o normalizaci třídy, že její instanční proměnné by neměly být konglomeráty, ale atomické hodnoty, které se v metodě __toString() teprve spojí do požadovaného výstupu.
Josef Kufner avatar 22.11.2013 12:02 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
__toString vrací vždy obyčejný string. Jak k němu dojde, je celkem jedno, jen by ta metoda neměla mít žádné side effecty, tedy jedno zavolání a libovolný počet zavolání musí vyjít nastejno.

Ten kousek kódu je dobře, jen by místo strval bylo lepší použít přetypování na string: return (string) $this->foo;
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 22.11.2013 12:18 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Ten kousek kódu je dobře, jen by místo strval bylo lepší použít přetypování na string: return (string) $this->foo;
Mohl bys prosim nejak podlozit, v cem je to lepsi? IMHO obe veci delaji uplne tu samou vec. Spis je to o osobnich preferencich.
Don't panic!
Josef Kufner avatar 22.11.2013 12:29 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Rozdíl je v rychlosti. Přetypování ušetří volání funkce a výsledek je přitom zcela stejný. Pokud by to bylo v nějaké často používané funkci, což docela často bývá případ různých pomocných formátovacích udělátek, může to zvednout výkon aplikace o pár procent.
Hello world ! Segmentation fault (core dumped)
Tarmaq avatar 22.11.2013 12:30 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Vlastne existuje duvod pro pouziti strval() misto (string). Je hned na prvni pohled jasne, co je castovano a clovek tak nemusi resit napr. precedenci operatoru..
Don't panic!
Josef Kufner avatar 22.11.2013 12:34 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Důvod, proč strval existuje, je funkce array_map a jí podobné.

"strval(blabla)" a "(string)(blabla)" vyjde z pohledu čitelnosti i náročnosti psaní úplně na stejno.
Hello world ! Segmentation fault (core dumped)
22.11.2013 12:52 potato
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Z pohledu čitelnosti je zápis jako volání funkce určitě lepší. Je v kódu
(a)(b)(c)
- a i b typ, c proměnná

- a typ, b funkce, c proměnná

- a funkce vracející funkci, b funkce, c proměnná

nebo je to ještě nějak jinak?
22.11.2013 15:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php

Ej, to je extrém pomíjející fakt, že máme máme nějaké základní typy, klíčová slova apod. a že uživatelské typy také pojmenováváme dle nějakých zásad.

Osobně klasické přetypování ve stylu 'C' je pro mně to nejčitelnější (, co přesně dělá interpret PHP u jednotlivých zápisů nevím).

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 22.11.2013 17:08 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Problém s vrácením dat z class v php
Před proměnné se píše dolar, takže to je trošku jednodušší. Navíc podpora anonymních funkcí v PHP je taková trošku polovičatá, takže si s tímhle neporadí ani samotný interpret. Tenhle zápis je jedině trojité přetypování (PHP 5.3 a starší, jaké novinky jsou v PHP 5.5 jsem nezkoumal moc podrobně, ale prý se to trochu zlepšilo).
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.