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 23:33 | Nová verze

    Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 0
    dnes 22:33 | IT novinky

    Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.

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

    Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.

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

    Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.

    Ladislav Hagara | Komentářů: 4
    včera 20:11 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Nová verze

    Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.

    Ladislav Hagara | Komentářů: 3
    včera 16:00 | IT novinky

    Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 12:55 | Nová verze

    Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 3
    včera 03:22 | IT novinky

    Společnost OpenAI představila text-to-video AI model Sora 2 pro generování realistických videí z textového popisu. Přesnější, realističtější a lépe ovladatelný než předchozí modely. Nabízí také synchronizované dialogy a zvukové efekty.

    Ladislav Hagara | Komentářů: 4
    Jaké řešení používáte k vývoji / práci?
     (41%)
     (47%)
     (15%)
     (16%)
     (18%)
     (14%)
     (17%)
     (14%)
     (14%)
    Celkem 158 hlasů
     Komentářů: 9, poslední 24.9. 17:28
    Rozcestník

    Dotaz: volání metody v jiné třídě

    11.1.2016 12:59 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    volání metody v jiné třídě
    Přečteno: 339×
    Dobrý den

    řeším takový problémek, snad ho popíšu srozumitelně ..

    mám dvě nazávislé třídy, jedna definuje (modifikuje) chování druhé pro pozdejsi pouziti ...
    class vytvor {
    
      function __constructor( funkce ){
        this->_funkce = funkce;
      }
    
      function udelej(a){
        return $this->funkce( a );
      }
    }
    
    
    class poroucej {
      
      function na_druhou(a){
        return a*a;
      }
    
      function zaloz( $funkce ) {
        this->robot = new vytvor( $this->{$funkce} );
      }
    
      function zpracuj( array $data ){
        foreach( $data as $udaj ){
          $this->robot->udelej( $udaj );
        }
      }
    }
    
    $udaje = array( 2, 5, 30, 25 );
    $hlavni= new poroucej( "na_druhou" );
    echo $hlavni->zpracuj( $udaje );
    
    je to jen nástin, snad pochopitelny ... jde mi o to, zda lze předat funkci ( nebo tady metodu ) jako parametr, která se de fakto stane metodou jiné třídy.

    předem díky ..

    Řešení dotazu:


    Odpovědi

    11.1.2016 13:39 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: volání metody v jiné třídě
    Teď si uvědomuji, že ten nadpis je nepřesný .. jde o předání odkazu na metodu v jiné třídě
    11.1.2016 14:22 Radek
    Rozbalit Rozbalit vše Re: volání metody v jiné třídě
    skus hleada "pointer to function php"

    http://stackoverflow.com/questions/6475136/pass-a-function-by-reference-in-php
    http://stackoverflow.com/questions/12690820/how-to-pass-a-pointer-to-a-function-and-its-parameters-in-php

    function doIt ($fn) {
    echo "doIt\n";
    return $fn();
    }

    function doMe () {
    echo "doMe\n";
    }

    // I am using a closure here.
    // There may be a more clever way to "get the function-object" representing a given
    // named function, but I do not know what it is. Again, I *don't use PHP* :-) (nepoužívá PHP)
    echo doIt(function () { doMe(); });

    Kód je okopírován z jednoho odkazu výše

    Princip je jednoduchý funkce je uložená někde v pamětí, tedy je uložená na nějaké adrese. Tuto adresu si ulož do proměnné, a následně tuto proměnou můžeš volat jako funkci. (pokud má proměnná správný typ). (pro přetypování hledej retyping php)
    11.1.2016 14:27 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: volání metody v jiné třídě
    správně by mělo být echo doIt( 'doMe' };

    mně šlo ale o předání 'pointeru' na metodu v objektu .. viz níže ..

    každopádně děkuji za snahu
    Řešení 1× (Milan Uhrák (tazatel))
    11.1.2016 14:22 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: volání metody v jiné třídě
    Tak nic, když jsem správně pojmenoval problém, našel jsem i řešení

    volání má být this->robot = new vytvor( array($this, $funkce} );

    a udelej musi byt ošetřeno
      function udelej(a){
        $funkce = $this->$funkce;
        return $funkce[0]->$funkce[1]( a );
      }
    
    plus nějaké to odchycení chyb ..

    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.