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 20:22 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2026.

    Ladislav Hagara | Komentářů: 0
    včera 18:44 | Zajímavý software

    Německý startup Aleph Alpha k příležitosti výročí sjednocení Německa zveřejnil open-weight jazykový model Kolibri, vyvíjený s ohledem na unijní pojetí autorského práva, ochranu osobních údajů GDPR a nařízení EU o umělé inteligenci, jehož 'Kodexu správné praxe' je Aleph Alpha signatářem. Výsledkem tohoto přístupu je transparentnější technologie, kterou například budou moci využívat evropské veřejné instituce, ovšem za cenu

    … více »
    AfD 💙 | Komentářů: 1
    včera 18:33 | IT novinky

    Nvidia zveřejnila návrh nové bezpečnostní platformy pro nasazování AI agentů. Jedná se o nasazení AI za použití OpenShell a Sentry, dvou oddělených bezpečnostních vrstev, v nichž může Sentry monitorovat a vyhodnocovat chování AI v OpenShellu tak, že ho v krajním případě až vypne. Mělo by to zabránit dalším únikům AI ze sandboxu.

    vencour | Komentářů: 0
    3.10. 11:33 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 2
    3.10. 02:44 | Nová verze

    Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    2.10. 21:00 | Zajímavý projekt

    Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.

    AfD 💙 | Komentářů: 0
    2.10. 20:55 | Zajímavý software

    Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.

    … více »
    AfD 💙 | Komentářů: 1
    2.10. 04:44 | Nová verze

    Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.

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

    Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 5
    1.10. 18:11 | Komunita

    Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2795 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Oprava kódu

    16.3.2017 04:22 Tomáš Hradecký
    Oprava kódu
    Přečteno: 657×
    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ákno • Nahoru

    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.