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 12:11 | Nová verze

    Iced, tj. multiplatformní GUI knihovna pro Rust, byla vydána ve verzi 0.14.0.

    Ladislav Hagara | Komentářů: 0
    dnes 05:22 | Komunita

    FEX, tj. open source emulátor umožňující spouštět aplikace pro x86 a x86_64 na architektuře ARM64, byl vydán ve verzi 2512. Před pár dny FEX oslavil sedmé narozeniny. Hlavní vývojář FEXu Ryan Houdek v oznámení poděkoval společnosti Valve za podporu. Pierre-Loup Griffais z Valve, jeden z architektů stojících za SteamOS a Steam Deckem, v rozhovoru pro The Verge potvrdil, že FEX je od svého vzniku sponzorován společností Valve.

    Ladislav Hagara | Komentářů: 0
    dnes 03:22 | Nová verze

    Byla vydána nová verze 2.24 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 15:11 | IT novinky

    Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia online tabulky Proton Sheets v Proton Drive.

    Ladislav Hagara | Komentářů: 1
    6.12. 15:55 | Komunita

    O víkendu (15:00 až 23:00) probíha EmacsConf 2025, tj. online konference vývojářů a uživatelů editoru GNU Emacs. Sledovat ji lze na stránkách konference. Záznamy budou k dispozici přímo z programu.

    Ladislav Hagara | Komentářů: 0
    6.12. 15:44 | Komunita

    Provozovatel internetové encyklopedie Wikipedia jedná s velkými technologickými firmami o uzavření dohod podobných té, kterou má s Googlem. Snaží se tak zpeněžit rostoucí závislost firem zabývajících se umělou inteligencí (AI) na svém obsahu. Firmy využívají volně dostupná data z Wikipedie k trénování jazykových modelů, což zvyšuje náklady, které musí nezisková organizace provozující Wikipedii sama nést. Automatické programy

    … více »
    Ladislav Hagara | Komentářů: 28
    6.12. 15:22 | IT novinky

    Evropská komise obvinila síť 𝕏 z porušení unijních pravidel, konkrétně nařízení Evropské unie o digitálních službách (DSA). Vyměřila jí za to pokutu 120 milionů eur (2,9 miliardy Kč). Pokuta je podle názoru amerického ministra zahraničí útokem zahraničních vlád na americký lid. K pokutě se vyjádřil i americký viceprezident: „EU by měla podporovat svobodu projevu, a ne útočit na americké společnosti kvůli nesmyslům“.

    Ladislav Hagara | Komentářů: 24
    5.12. 17:11 | IT novinky

    Společnost Jolla spustila kampaň na podporu svého nového telefonu Jolla Phone se Sailfish OS. Dodání je plánováno na první polovinu příštího roku. Pokud bude alespoň 2 000 zájemců. Záloha na telefon je 99 €. Cena telefonu v rámci kampaně je 499 €.

    Ladislav Hagara | Komentářů: 30
    5.12. 15:11 | IT novinky

    Netflix kupuje Warner Bros. včetně jejích filmových a televizních studií HBO Max a HBO. Za 72 miliard dolarů (asi 1,5 bilionu korun).

    Ladislav Hagara | Komentářů: 2
    5.12. 14:11 | IT novinky

    V Las Vegas dnes končí pětidenní konference AWS re:Invent 2025. Společnost Amazon Web Services (AWS) na ní představila celou řadu novinek. Vypíchnout lze 192jádrový CPU Graviton5 nebo AI chip Trainium3.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (22%)
     (15%)
     (24%)
     (16%)
     (18%)
    Celkem 440 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: Oprava kódu

    16.3.2017 04:22 Tomáš Hradecký
    Oprava kódu
    Přečteno: 611×
    Ahoj, pořád dostávám chybu

    Catchable fatal error: Method Controller::__toString() must return a string value in /www/index.php

    Nemůže mi prosím někdo poradit?
    class View{
         private $model;
         public function __construct($model){
              $this->model = $model;
         }
         private function title(){
              return $this->model->title();
         }
         public function __toString(){
              return   '<!DOCTYPE HTML>'.
                       '<html>'.
                            '<head>'.
                                 '<title'.$this->title().'</title>'.
                            '</head>'.
                            '<body>'.
                            '</body>'.
                       '</html>';
         }
    }
    
    class Model{
         public function __construct(){
         }
         public function title(){
              return 'title';
         }
    }
    
    class Controller{
         private $html;
         public function __construct(){
              $model = new Model ();
              $this->html = $view = new View ($model);
         }
         public function __toString(){
              return $this->html;
         }
    }
    
    $controller = new Controller();
    echo $controller;
    

    Odpovědi

    16.3.2017 05:26 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava kódu
    $this->html není string, ale objekt. Obvykle pomůže přetypování zřetězením:
    public function __toString() {
         return '' . $this->html;
    }
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    kozzi avatar 16.3.2017 06:34 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Oprava kódu

    Ale fuj :D.

    http://php.net/manual/en/function.strval.php

    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    16.3.2017 16:12 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava kódu
    No jo, obvykle v __toString() nevracím jen prezentaci vnořeného atributu, ale komplexní textovou prezentaci celého objektu. V daném případě je přetypování (string) vhodnější.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    kozzi avatar 16.3.2017 06:40 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Oprava kódu

    Normalne to pretypuj:

    public function __toString(){
        return (string)$this->html;
    }
    
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    16.3.2017 14:17 Tomáš Hradecký
    Rozbalit Rozbalit vše Re: Oprava kódu
    Děkuji a to je běžná věc, že se přetypovávají proměnné nebo je to jen lenost/neschopnost programátorů?
    16.3.2017 14:59 chrono
    Rozbalit Rozbalit vše Re: Oprava kódu
    Áno, ak funkcia __toString vráti čokoľvek iné ako reťazec, je to neschopnosť programátora. :)
    kozzi avatar 17.3.2017 08:31 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
    Rozbalit Rozbalit vše Re: Oprava kódu

    Tak jde o to ze pokud mate nejnovejsi php, tak muzete (a mel by ste) urcit navratovy typ funkce

    ...
    class Controller{
         private $html;
         public function __construct(){
              $model = new Model ();
              $this->html = $view = new View ($model);
         }
         public function __toString():string {
              return $this->html;
         }
    }
    ...
    
    Potom uz neni treba pretypovat
    Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
    17.3.2017 10:09 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Oprava kódu
    Je to otázkou priorit. Mé skripty musí fungovat na PHP 5.3 i 7.0. Nové vlastnosti PHP si tedy nemohu dovolit.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

    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.