abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

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

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

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

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 9
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

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

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

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

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 744 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Dotaz: Objasnění chybové hlášky v PHP

    8.4.2012 22:01 Jiří P.
    Objasnění chybové hlášky v PHP
    Přečteno: 399×
    Dobrý večer, vysvěli by mi prosím někdo níže uvedenou chybu? Předem děkuji

    Strict Standards: Non-static method news::content() should not be called statically, assuming $this from incompatible context


    Řešení dotazu:


    Odpovědi

    8.4.2012 22:10 Kit
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Metoda news::content() nebyla deklarována jako statická a snažil ses ji volat staticky.
    8.4.2012 22:23 Jiří P.
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    A co prosím přesě znamená, že jsm ji volal staticky? Jako, že jsem ji volal news::content(); ? Děkuji
    8.4.2012 22:47 Kit
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Přesně tak. Buď tu metodu musíš označit jako statickou a pak ji tak můžeš volat, anebo z té třídy musíš vytvořit objekt $objekt=new news; a volat ji $objekt->content();
    8.4.2012 22:54 Jiří P.
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    patrně tomu rozumíš vice než je zdrávo, zeptám se tedy ještě na jeden dotaz, co má za účel statická třída? Pokud budu volat z nějaké třídy staticky jinou třídu.. Děkuji
    8.4.2012 23:09 Kit
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Ze statické třídy se nevytváří objekty, ale sama funguje jako objekt. Používá se jen v případě, kdy potřebujeme pouze jeden objekt a nechceme, aby se vytvářely další. Dělají se tak například bloky konstant a statických funkcí nebo třeba pattern Singleton.
    8.4.2012 23:19 Jiří P.
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Děkuji moc za ochotu a objasnění... ;)

    BTW: nedá se zavolat třída a objekt najednou?
    $object = new news();
    echo $object->content();
    něco jako
    echo new news()->content();
    Dík

    8.4.2012 23:34 Kit
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Dá a poměrně často to používám, i když bych to nazval trochu jinak. Ve třídě je nutné nadefinovat magickou metodu __toString(), která vrací string. Použití je pak jednoduché:
    echo new news('parametry',$pro,'konstruktor');
    Ještě jeden dobrý zvyk: Dávej názvům tříd velké písmeno na začátku, lépe se to čte.
    echo new News('parametry',$pro,'konstruktor');
    8.4.2012 23:52 Jiří P.
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Paráda, díky moc, říkal jsem poslední a už jsem to přetáhl tak ještě fakt poslední ;) a jdu spát.. Nevím jak správné zavolat z nějaké fci jinou fci ale ve stejné class. Děkuji
    class Menu{
      public function menu_creating($array){
      /* kod */
      }
      
      public function user($array){
      /* Tady nevím jak zavolat fci menu_creating() */
      }
    
      public function user($array){
      /* Tady nevím jak zavolat fci menu_creating() */
      }
    }
    mess avatar 9.4.2012 11:09 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Pokud bude funkce menu_creating statická, pak Menu::menu_creating($blabla);, pokud ne (v tomhle tvém kódu není), tak $this->menu_creating($blabla);.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    9.4.2012 18:18 Kit
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    V případě statického volání metody uvnitř třídy bych raději místo
    Menu::menu_creating($blabla);
    použil
    self::menu_creating($blabla);
    viz článek na Intervalu.
    mess avatar 10.4.2012 15:22 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Jasně. Jsem si neuvědomil, že už to PHP nějakou chvíli umí s tím self.
    Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
    10.4.2012 10:48 Jiří P.
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Ahoj, tak jsem to zkoušel a zjistil jsem, že pokud použiji __toString() tak nenactu zadny prametr a class ani nic nevrati :-(.. Poradí někdo? Děkuji
              class Test{
    
                        public function __toString($pdo){
    
                                  $page = false;
    
                                  foreach ($pdo->query("SELECT * FROM text LIMIT 10") as $row) {
    
                                            $page .= $row['nadpis']."
    "; } return $this->page; } } echo New Test($pdo);
    10.4.2012 11:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Pletete dohromady konstruktor __toString() viz manuál a příklad:
    <?php
    class Test{
      private $cnt = NULL;
      function __construct ($cnt){
        $this->cnt = $cnt;
      }
      public function __toString(){
        $r = '';
        for($i=0;$i<$this->cnt;$i++)
          $r .= "Num: $i\n";
        return $r;   
      }
      
      private function getCntPlus10(){
        return $this->cnt + 10; 
      }
    
      static public function Iam(){
        return  "I'am Test"; 
      }
      public function foo(){
        return self::Iam() . ", cnt + 10 = " . $this->getCntPlus10();  
      }
    }
    echo new Test(3),"\n\n";
    $o = new Test(32);
    echo $o->foo();
    
    PS: to $page .= $row['nadpis']… lze zapsat i čitelněji $page .= "${row['nadpis']}\n";

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    10.4.2012 12:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Opravička: „Pletete dohromady konstruktor a metodu __toString()…“
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    10.4.2012 11:27 jos
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    __toString nemůže brát žádný parametry, přesuň to do konstruktoru
    class Test
    {
      function __construct($pdo)
      {
        $this->pdo = $pdo;
      }
      private $pdo;
      function __toString($pdo)
      {
        $page = '';
        foreach ($this->pdo->query("SELECT * FROM text LIMIT 10") as $row) {
          $page .= $row['nadpis']."\n";
        }
        return $page;
      }
    }
    
    echo new Test($pdo);
    
    
    http://cz.php.net/manual/en/language.oop5.magic.php#object.tostring
    10.4.2012 12:13 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP

    a odsuň to z __toString($pdo)__toString() :)

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    10.4.2012 12:27 jos
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    jasný, sem vůl, špatnej copy&paste&modify
    Tarmaq avatar 10.4.2012 13:08 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    doplnil bych ze od PHP 5.4.0 by melo fungovat:
    echo (new news)->content();
    
    Don't panic!
    Josef Kufner avatar 10.4.2012 23:58 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Objasnění chybové hlášky v PHP
    Singleton není statická třída. Singleton je objekt jako každý jiný, ale místo konstruktoru se používá statická metoda, která vrací pořád jednu a tutéž instanci.

    A vůbec na statické věci a slovo static zapomeň. Dokud nevíš k čemu je, tak to nepotřebuješ. Naděláš tím víc škody než užitku. Slovíčka new a $this ti budou zatím stačit.
    Hello world ! Segmentation fault (core dumped)

    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.