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í
×

dnes 16:11 | Zajímavý software

Společnost Avast uvolnila zdrojové kódy svého dekompilátoru RetDec (Retargetable Decompiler) založeného na LLVM. Vyzkoušet lze RetDec jako webovou službu nebo plugin pro interaktivní disassembler IDA. Zdrojové kódy RetDec jsou k dispozici na GitHubu pod open source licencí MIT.

Ladislav Hagara | Komentářů: 0
včera 11:00 | Zajímavý software
Na Good Old Games je v rámci aktuálních zimních slev zdarma k dispozici remasterovaná verze klasické point&click adventury Grim Fandango, a to bez DRM a pro mainstreamové OS včetně GNU/Linuxu. Akce trvá do 14. prosince, 15:00 SEČ.
Fluttershy, yay! | Komentářů: 6
včera 07:22 | Pozvánky

Konference InstallFest 2018 proběhne o víkendu 3. a 4. března 2018 v Praze na Karlově náměstí 13. Spuštěno bylo CFP. Přihlásit přednášku nebo workshop lze do 18. ledna 2018.

Ladislav Hagara | Komentářů: 0
12.12. 20:22 | Nová verze

Před měsícem byla vydána Fedora 27 ve dvou edicích: Workstation pro desktopové a Atomic pro cloudové nasazení. Fedora Server byl "vzhledem k náročnosti přechodu na modularitu" vydán pouze v betaverzi. Finální verze byla naplánována na leden 2018. Plán byl zrušen. Fedora 27 Server byl vydán již dnes. Jedná se ale o "klasický" server. Modularita se odkládá.

Ladislav Hagara | Komentářů: 6
12.12. 10:22 | Zajímavý článek

Lukáš Růžička v článku Kuchařka naší Růži aneb vaříme rychlou polévku z Beameru na MojeFedora.cz ukazuje "jak si rychle vytvořit prezentaci v LaTeXu, aniž bychom se přitom pouštěli do jeho bezedných hlubin".

Ladislav Hagara | Komentářů: 13
12.12. 07:22 | Komunita

Od 26. do 29. října proběhla v Bochumi European Coreboot Conference 2017 (ECC'17). Na programu této konference vývojářů a uživatelů corebootu, tj. svobodné náhrady proprietárních BIOSů, byla řada zajímavých přednášek. Jejich videozáznamy jsou postupně uvolňovány na YouTube.

Ladislav Hagara | Komentářů: 0
11.12. 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
11.12. 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 2
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 14
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 4
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 982 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Dotaz: Problem s výstupem z class v php

    8.8.2013 13:42 Venda
    Problem s výstupem z class v php
    Přečteno: 209×
    Ahoj, mám dvě třídy s názvy Aaa a Bbb. (Ve tříde Aaa vytvořím instanci třídy Bbb).

    Třída Aaa
    class Aaa {
      private $aaa;
      public function __construct() {
      $this->aaa = new Bbb();
     }
    
     function __toString() {
      return $this->aaa;
     }
    }
    
    Třída Bbb
    class Bbb {
      private $bbb;
      public function __construct() {
      $this->bbb = 'Výsledek';
     }
    
     function __toString() {
      return $this->bbb;
     }
    }
    Vytvořím instanci třídy Aaa ale dostanu chybu!
    echo new Aaa(); // Method Aaa::__toString() must return a string value
    Zjistil jsem, že když ve tříde Aaa opravím řádek
    $this->aaa = new Bbb();
    za
    $this->aaa .= new Bbb();
    tak to funguje. Proč tomu tak je však nedokážu nějak pochopit, vždyť nic nespojuji, tak proč tečka? Poradí někdo? Děkuji

    Odpovědi

    Tarmaq avatar 8.8.2013 13:58 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Vsak to mas v popisu chyby, metoda __toString() musi vracet string. Takze v tride Aaa predelej metodu __toString() takto:
     function __toString() {
      return strval($this->aaa);
     }
    
    Don't panic!
    8.8.2013 14:01 Venda
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Ale to není odpověď na mou otázku, pořád nevím, proč tečka ovlivňuje jestl bude výstup objekt nebo string, tohle bych potřeboval objasnit. Děkuji
    Tarmaq avatar 8.8.2013 14:19 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    ty nevis jaky je rozdil mezi operatorem = a .=? Prvni je prirazeni, druhy je zkraceny zapis concatenace stringu.
    $this->aaa .= new Bbb();
    
    by se tedy dalo zapsat take takto:
    $this->aaa = $this->aaa . new Bbb();
    
    No a pri concatenaci dochazi k prevodu na string, takze se na instanci new Bbb() zavola metoda __toString()
    Don't panic!
    8.8.2013 15:00 Venda
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Jenže já v $this->aaa nic jiného krom výsledku ze třídy Bbb() nemám, tudíž nerozumím proč mám spojovat prázdný řetězec, kdyby $this->aaa obsahovala ještě nějaká data ve své třídě new Aaa() tak to chápu ale takto ne. Díky
    Tarmaq avatar 8.8.2013 15:39 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Co to je "vysledek z tridy"? V $this->aaa nemas zadny vysledek, mas tam instanci tridy Bbb. Metoda __toString() se vola jen v pripade, ze je potreba z te instance udelat string.
    Don't panic!
    8.8.2013 15:56 axel
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Co dela tecka si objasni v libovolnem tutorialu PHP. Metodou nekam napisu treba tecku a uvidim, jestli mi to nahodou nezacne "fungovat", se nikam nedostanes. Kdyz das do promenne instanci tridy, je v ni instance tridy. Kdyz tam das string (napr. ziskany volanim __toString na instanci), je tam string. To je zcela elementarni a pokud to nechapes, opet se vrat k libovolnemu tutorialu PHP.
    8.8.2013 15:54 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php

    Musíš nějak vynutit konverzi na řetězec a pomocí .= jsi provedl $this->aaa = $this->aaa . new Bbb();.

    Já mám otázku: »Co vás lidi, tedy fčul Tebe, prosím Tě vede k tomu to používat takto (používat __toString())?«
    To se musí někde líhnout tyto nápady a musí to mít nějaký důvod :).

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    8.8.2013 17:06 Venda
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Když __toString() nepoužiju, tak jak dostanu výsledek co vytvoří ta class?

    Příklad
    class Aaa {
      private $aaa;
      public function __construct() {
      $this->aaa = false;
      $this->aaa .= '<ul>';
      $this->aaa .= '<li>aaa</li>';
      $this->aaa .= '<li>bbb</li>';
      $this->aaa .= '<li>ccc</li>';
      $this->aaa .= '</ul>';
     }
    }
    
    $aaa = new Aaa();

    echo $aaa;
    8.8.2013 17:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php

    A k čemu je taková třída?

    Dobře, bude to „výkonná“ třída:

    <?php
    class Aaa {
      static public function getListStatic() {
        $o  = '
      '; $o .= '
    • aaa
    • '; $o .= '
    • bbb
    • '; $o .= '
    • ccc
    • '; $o .= '
    '; return $o; } public function getList() { $o = '
      '; $o .= '
    • aaa
    • '; $o .= '
    • bbb
    • '; $o .= '
    • ccc
    • '; $o .= '
    '; return $o; } }; echo Aaa::getListStatic(),"
    \n"; $o = new Aaa(); echo $o->getList(),"
    \n";

    PS: Neplatanl bych bool a string jen tak bezdůvodně…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    8.8.2013 17:26 Venda
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Tohle je mi jasný, ale jak to udělám s použitím __constructor() ? Díky
    Tarmaq avatar 8.8.2013 17:41 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    class Aaa
    {
      private $o;
      public function __construct()
      {
        $this->o  = '
      '; $this->o .= '
    • aaa
    • '; $this->o .= '
    • bbb
    • '; $this->o .= '
    • ccc
    • '; $this->o .= '
    '; } public function getList() { return $this->o; } }; $o = new Aaa(); echo $o->getList(),"
    \n";
    U staticke varianty se konstruktor nevola, konstruktor se vola pri instanciaci..
    Don't panic!
    8.8.2013 17:47 Venda
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    Ale zase musím volat metodu, proto jsem tam dal __toString() a nemusím už nic volat, vytvořim instanci v proměnné $o a zrovna v ní mám zpracované data z class.
    $o = new Aaa();
    echo $o; 
    # Výsledek
    aaa
    bbb
    ccc
    
    
    Tarmaq avatar 8.8.2013 17:56 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    No a kde je teda problem? Tohle ti nestaci?
    Don't panic!
    8.8.2013 18:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Problem s výstupem z class v php
    PS: Stejně se metoda volá, nic jsi neušetřil, jen si to komplikuješ….
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

    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.