abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:11 | Nová verze

    Bylo vydáno Eclipse IDE 2024-09 aneb Eclipse 4.33. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 20:33 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Bezpečnostní upozornění

    Ve FreeBSD byla nalezena a opravena kritická bezpečnostní chyba CVE-2024-43102 s CVSS 10.

    Ladislav Hagara | Komentářů: 2
    včera 14:22 | Komunita

    K posouzení byly předány patche přidávající do linuxových stromů zařízení (device trees) zařízení s SoC A7 až A11 od Applu (iPhone, iPad, iPod a Apple TV).

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý článek

    Vývoj webového prohlížeče nad renderovacím jádrem Servo, aktuální příspěvek na blogu Serva (Wikipedie). Vedle referenčního prohlížeče servoshell vzniká prohlížeč Verso. Vyzkoušet lze noční sestavení.

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    Unicode Consortium, nezisková organizace koordinující rozvoj standardu Unicode, oznámila vydání Unicode 16.0. Přidáno bylo 5 185 nových znaků. Celkově jich je 154 998. Přibylo 7 nových Emoji.

    Ladislav Hagara | Komentářů: 5
    včera 01:00 | IT novinky

    Byla vydána první major verze 1.0 oficiálního firmwaru pro zařízení Flipper Zero (Wikipedie). Po třech letech vývoje. Přehled novinek i s náhledy a videi v příspěvku na blogu: podpora aplikací třetích stran, nový NFC podsystém, podpora JavaScriptu pro psaní aplikací, vylepšení spotřeby, zrychlení Bluetooth přenosu…

    Ladislav Hagara | Komentářů: 4
    10.9. 23:33 | Nová verze

    Radicle, distribuovaná alternativa k softwaru pro spolupráci jako např. GitLab, byl vydán ve verzi 1.0. Nyní obsahuje nad gitem postavený, rozšiřitelný protokol pro diskuze a nakládání s patchi, autentizaci a autorizaci, integraci Toru a uživatelské rozhraní v příkazovém řádku či jednoduché webové rozhraní pro prohlížení repozitářů. Projekt byl dříve představen a diskutován na Linux Weekly News.

    Fluttershy, yay! | Komentářů: 0
    10.9. 15:11 | Nová verze

    Byla vydána nová verze 6.7 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.5.3. Thunderbird na verzi 115.15.0. OnionShare z verze 2.2 na verzi 2.6.

    Ladislav Hagara | Komentářů: 0
    10.9. 12:22 | IT novinky

    Rozsudky Soudního dvora Evropské unie ve věcech C-465/20 P (Apple) a C-48/22 P (Google a Alphabet): Irsko poskytlo společnosti Apple protiprávní daňová zvýhodnění ve výši 13 miliard eur a je povinné je získat zpět. Byla potvrzena pokuta ve výši 2,4 miliardy eur uložená společnosti Google za to, že zneužívala svého dominantního postavení tím, že upřednostňovala vlastní službu srovnávání výrobků.

    Ladislav Hagara | Komentářů: 54
    Rozcestník

    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: 792×
    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: 45 | 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: 70
    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: 70
    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: 70
    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: 70
    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.