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 05:22 | Zajímavý software

    Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.

    Ladislav Hagara | Komentářů: 8
    dnes 04:11 | Zajímavý software

    Příspěvek na blogu herního enginu Godot představuje aplikaci Xogot přinášející Godot na iPad a iPhone. Instalovat lze z App Storu. Za Xogotem stojí Miguel de Icaza (GitHub) a společnost Xibbon.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za březen (YouTube).

    Ladislav Hagara | Komentářů: 9
    3.4. 16:44 | Nová verze

    ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    3.4. 12:33 | Nová verze

    DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.

    NUKE GAZA! 🎆 | Komentářů: 10
    3.4. 03:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 0
    2.4. 19:55 | Zajímavý projekt

    Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.

    |🇵🇸 | Komentářů: 0
    2.4. 18:22 | Nová verze

    Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.

    Ladislav Hagara | Komentářů: 0
    2.4. 15:11 | Zajímavý software

    Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.

    Ladislav Hagara | Komentářů: 3
    2.4. 14:00 | Komunita

    Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (7%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (1%)
     (14%)
     (23%)
    Celkem 1222 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: PHP - Jak zavolat z getteru objek nastavená v costructu ?

    8.11.2014 23:38 Falco
    PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Přečteno: 267×
    Ahoj. Mám problém s tímto kódem. Neporadí někdo? Díky
    class Parser{
    
       function __construct($obj){
          $this->$obj = $obj;
       }
    
       function __get(){
          # Nevím jak tady zavolat ten objekt $obj. Zkoušel jsem toto
          $this->obj->metoda;
          # ale nefunguje to
       }
    }

    Řešení dotazu:


    Odpovědi

    9.11.2014 01:43 Sten
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Chyby tam jsou dvě:
    1. $this->$obj = $obj; má být $this->obj = $obj;. $this->$obj totiž pro jméno proměnné použije výsledek volání $obj->__toString()
    2. Volání metody musí obsahovat závorky: $this->obj->metoda()
    9.11.2014 15:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Ještě chybí deklarace: public $obj = NULL; (nebo bez inicializace).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    9.11.2014 16:03 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Ono to vyjde nastejno. Asi jsi to chtěl udělat privat, ne?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    9.11.2014 16:04 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Jo - nevím co mě napadlo tam dát public - to mi ujelo.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    9.11.2014 16:26 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Gettery a settery se v PHP používají trochu jinak:
    <?php
    
    class Parser {
        private $obj = array();
    
        function __set($key, $value) {
            $this->obj[$key] = $value;
        }
    
        function __get($key) {
            return $this->obj[$key];
        }
    }
    
    $registr = new Parser();
    $registr->smysl = 42;
    $registr->kopa = 60;
    echo "Kopa je $registr->kopa kusů, smyslem života je $registr->smysl";
    
    Jenže pokud potřebuješ něco takhle primitivního, vystačíš si i se standardní třídou stdClass, která to už umí.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    FrostyX avatar 9.11.2014 22:24 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Smysl tohodle __get() a __set() v PHP jsem nikdy nepochopil. Přijde mi, že gettery a settery jako takové, mají dvě výhody.
    1. Pokud je potřeba, nedovolit uložení nesprávné hodnoty do objektu
    2. Pokud je potřeba, provést nějakou akci ještě před tím, než se hodnota uloží/vrátí
    V drtivé většině případů to člověk nepotřebuje, ale ve chvíli kdy to potřebuje, ví jak to udělat. Ovšem tenhle způsob co je v PHP mi přijde úplně k ničemu, protože mi nedovolí udělat ten getter/setter pro konkrétní proměnnou, kterou potřebuji. Takže stejně nakonec musím udělat
    public function getFoo() { ... }
    public function setFoo($foo) { ... }
    
    FrostyX.cz | 1984 was not supposed to be an instruction manual.
    9.11.2014 22:38 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Gettery a settery obecně moc velký význam nemají. Těmito magickými funkcemi se dají elegantně postihnou i funkce, které jsi popsal. Stačí použít vhodný switch.

    Metodu $obj->getFoo() nemůžeš použít ve stringu (šabloně), ale $obj->foo tam použít můžeš - normálně se expanduje. Ládovat všechno do pomocných proměnných před šablonou je poněkud nepraktické.

    Jak jsem psal, ten mnou popsaný způsob pouze popisuje volání - jako v manuálu. V této podobě to už nepoužívám. Nepoužívám gettery/settery a nepoužívám ani public proměnné.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    FrostyX avatar 9.11.2014 23:17 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
    Rozbalit Rozbalit vše Re: PHP - Jak zavolat z getteru objek nastavená v costructu ?
    Stačí použít vhodný switch
    Určitě souhlas, ale asi by se mi to moc nelíbilo.
    Metodu $obj->getFoo() nemůžeš použít ve stringu (šabloně)
    Díky, tohle mě nenapadlo. Já většinou používám Laravel a tam by s tím problém nebyl.
    FrostyX.cz | 1984 was not supposed to be an instruction manual.

    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.