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 21:22 | Zajímavý projekt

    Iconify je seznam a galerie kolekcí vektorových open-source ikon, ke stažení je přes 275000 ikon z více jak dvou set sad. Tento rovněž open-source projekt dává vývojářům k dispozici i API pro snadnou integraci svobodných ikon do jejich projektů.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 03:33 | IT novinky

    Dle plánu certifikační autorita Let's Encrypt nově vydává také certifikáty s šestidenní platností (160 hodin) s možností vystavit je na IP adresu.

    Ladislav Hagara | Komentářů: 5
    včera 14:44 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 14.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 2
    včera 13:11 | Zajímavý projekt

    Just the Browser je projekt, 'který vám pomůže v internetovém prohlížeči deaktivovat funkce umělé inteligence, telemetrii, sponzorovaný obsah, integraci produktů a další nepříjemnosti' (repozitář na GitHubu). Využívá k tomu skrytá nastavení ve webových prohlížečích, určená původně pro firmy a organizace ('enterprise policies'). Pod linuxem je skriptem pro automatickou úpravu nastavení prozatím podporován pouze prohlížeč Firefox.

    NUKE GAZA! 🎆 | Komentářů: 3
    16.1. 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    16.1. 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 25
    16.1. 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    16.1. 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    16.1. 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (2%)
     (11%)
     (40%)
    Celkem 499 hlasů
     Komentářů: 14, poslední dnes 10:22
    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: 328×
    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.