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 10:00 | Komunita

    V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    dnes 09:44 | IT novinky

    Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.

    Ladislav Hagara | Komentářů: 7
    dnes 01:11 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.6.

    Ladislav Hagara | Komentářů: 0
    dnes 00:55 | Nová verze

    Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 22:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | IT novinky

    Americká filmová studia Walt Disney a Universal Pictures podala žalobu na provozovatele populárního generátoru obrázků pomocí umělé inteligence (AI) Midjourney. Zdůvodňují to údajným porušováním autorských práv. V žalobě podané u federálního soudu v Los Angeles označují firmu za „bezednou jámu plagiátorství“, neboť podle nich bez povolení bezostyšně kopíruje a šíří postavy z filmů jako Star Wars, Ledové království nebo Já, padouch, aniž by do nich investovala jediný cent.

    Ladislav Hagara | Komentářů: 1
    včera 18:33 | IT novinky

    Ultra Ethernet Consortium (UEC), jehož cílem je optimalizace a další vývoj Ethernetu s důrazem na rostoucí síťové požadavky AI a HPC, vydalo specifikaci Ultra Ethernet 1.0 (pdf, YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | IT novinky

    Francouzský prezident Emmanuel Macron chce zakázat přístup na sociální sítě pro děti do 15 let. Francie podle něj tento krok udělá sama do několika měsíců, i pokud se na něm neshodnou další státy Evropské unie. Reaguje tak na úterní vraždu vychovatelky, kterou ve východofrancouzském městě Nogent pobodal 14letý mladík. Jednotlivé sociální sítě podle něj mají možnost věk ověřit a vymáhat zákaz pomocí systémů na rozpoznávání tváří.

    Ladislav Hagara | Komentářů: 9
    včera 05:11 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,742 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější český počítač C24 klesl na 165 místo. Karolina, GPU partition klesla na 195. místo a Karolina, CPU partition na 421. místo. Další přehledy a statistiky na stránkách projektu.

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

    Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 5
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (31%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 254 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Problém v PHP s třídou

    13.10.2013 16:37 Jakub
    Problém v PHP s třídou
    Přečteno: 208×
    Mám třídu Foo, ale výsledek mi třída nevrací, proč?
    class Foo{
       public $result = false;
       public function __constructor(){
          $this->result .= 'AAA';
          $this->result .= 'BBB';
          $this->result .= 'CCC';
       }
    }
    
    $Foo = New Foo();
    $foo = $Foo->result;
    
    var_dump($foo); // bool(false)
    A proč nemám na výstupu 'AAABBBCCC' ? Děkuji

    Řešení dotazu:


    Odpovědi

    13.10.2013 17:22 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Dodržuj konvence velikosti písmen, nebo se z toho zblázníš.

    Chybí ti tam konstruktor, proto se atribut nenastaví.
    13.10.2013 18:29 Jakub
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Dodržuj konvence velikosti písmen, nebo se z toho zblázníš.
    Co přesně nedodržuji? Díky
    13.10.2013 18:57 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Názvy tříd obvykle začínají velkým písmenem, název objektu malým písmenem.

    Nazval jsi objekt stejně jako třídu. Je to sice možné, ale je to zavádějící a mohou s tím být potíže. Hlavně kvůli možnosti záměny.

    A v neposlední řadě mám výhrady k používání "foo" a "bar". Jsou to tak silně nesémantické názvy, že by se v programech vůbec neměly objevovat.

    A na závěr: Místo
    public $result = false;
    public function __construct() {
        $this->result .= 'AAA';
        $this->result .= 'BBB';
        $this->result .= 'CCC';
    }
    
    bych raději použil
    private $result = array('AAA', 'BBB', 'CCC');
    (seznam je skvělá struktura) nebo v původním významu
    private $result;
    public function __construct() {
        $this->result = implode('', array('AAA', 'BBB', 'CCC'));
    }
    
    nebo ideálně
    private $result;
    public function __construct() {
        $this->result = array('AAA', 'BBB', 'CCC');
    }
    public function __toString() {
        return implode('', $this->result);
    }
    
    Rozhodně bych však proměnnou typu string neinicializoval booleovskou hodnotou "false" a 3× ji nepřepisoval stringem.
    13.10.2013 19:57 potato
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Jsou to tak silně nesémantické názvy, že by se v programech vůbec neměly objevovat.
    WTF? Foo, bar, quux, etc. v příkladech zastupují entity, jejichž přesný původ či význam je pro daný příklad irelevantní, o to právě jde.
    13.10.2013 20:02 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Právě že když děláme OOP, tak vždy existuje vazba na realitu a OOP se této realitě podřizuje. Když v učebnici čtu desátý příklad, kde je proměnná foo nebo bar, tak se mi ty příklady začínají plést a mám chuť s tou knížkou švihnout nebo to PDF vymazat. Kde je to modelování reality, ke které se OOP hlásí? To ten autor učebnice nemá žádnou fantazii?
    13.10.2013 20:16 potato
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    V učebnicích by měly být promyšlené příklady.

    Když ale píšu dotaz do mailing listu, proč něco nefunguje, tak je slušnost napsat ho v minimální formě, která ukazuje daný problém či nejasnost. Což znamená ho zbavit irelevantních detailů. Když někde použij funkci foo(), tak tím říkám, že se to chová stejně s každou funkcí (a demonstruji to na nějaké triviální), nezáleží na tom, že reálně to je časový vývoj střední rychlosti kladných iontů dusíku, který se počítá kdovíjak.
    13.10.2013 20:22 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Tak srovnej:
    $Foo = New Foo();
    $foo = $Foo->result;
    
    s tímto:
    $objekt = new Trida();
    $hodnota = $objekt->atribut;
    
    Z toho alespoň tuším, že tazatel ví, jaký je rozdíl mezi třídou, objektem a atributem. Obecnost je zachována.
    13.10.2013 20:35 potato
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    tazatel ví, jaký je rozdíl mezi třídou, objektem a atributem
    Asi bych byl vyhodnocen jako nevědoucí, protože třída by se jmenovala A, její instance a -- a funkce samozřejmě foo()...
    13.10.2013 20:36 potato
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    13.10.2013 21:33 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Je fakt divné, pokud je zelenina uvnitř ovoce. Raději bych si objekt třídy Zelenina představoval uvnitř objektu třídy Přepravka. Objekt zelenina by se zeptal přepravky, kolik je uvnitř kusů zeleniny. Je to sice divné, ale představitelné.

    V každém případě se mi s tím pracovalo mnohem lépe než s Foo a Bar.
    Josef Kufner avatar 13.10.2013 22:02 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Zelenina neexistuje.
    Hello world ! Segmentation fault (core dumped)
    13.10.2013 20:08 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Odporuje to zásadám, pro které je oslavován Komenský a které možná ani nedorazily do Ameriky a proto tam vymysleli jen pitomosti typu foo a bar.
    13.10.2013 20:17 potato
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Jaké zásady Komenský publikoval ohledně dotazů v programovacích fórech a mailinglistech? To by mě opravdu zajímalo.
    13.10.2013 20:26 Kit
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Princip názornosti. Vysvětlování od konkrétního k abstraktnímu. Od konkrétních, zjevných a ověřitelných příkladů k obecnosti.
    13.10.2013 17:57 Jan Trávníček | skóre: 10 | blog: ehonza | Existuje
    Rozbalit Rozbalit vše Re: Problém v PHP s třídou
    Možná protože to má být __construct a ne __constructor.
    To mess up a Linux box, you need to work at it; to mess up your Windows box, you just have to work on it.

    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.