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 22:55 | IT novinky

    Amazon bude poskytovat cloudové služby OpenAI. Cloudová divize Amazon Web Services (AWS) uzavřela s OpenAI víceletou smlouvu za 38 miliard USD (803,1 miliardy Kč), která poskytne majiteli chatovacího robota s umělou inteligencí (AI) ChatGPT přístup ke stovkám tisíc grafických procesů Nvidia. Ty bude moci využívat k trénování a provozování svých modelů AI. Firmy to oznámily v dnešní tiskové zprávě. Společnost OpenAI také nedávno

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Pozvánky

    Konference Prague PostgreSQL Developer Day 2026 (P2D2) se koná 27. a 28. ledna 2026. Konference je zaměřena na témata zajímavá pro uživatele a vývojáře. Příjem přednášek a workshopů je otevřen do 14. listopadu. Vítáme témata související s PostgreSQL či s databázemi obecně, a mohou být v češtině či angličtině.

    TomasVondra | Komentářů: 0
    včera 13:22 | Nová verze

    Byl vydán Devuan 6 Excalibur. Přehled novinek v poznámkách k vydání. Kódové jméno Excalibur bylo vybráno podle planetky 9499 Excalibur. Devuan (Wikipedie) je fork Debianu bez systemd. Devuan 6 Excalibur vychází z Debianu 13 Trixie. Devuan 7 ponese kódové jméno Freia.

    Ladislav Hagara | Komentářů: 4
    včera 10:44 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu poprvé překročil 3 %, aktuálně 3,05 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 27,18 %. Procesor AMD používá 67,10 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 1
    včera 10:33 | Zajímavý projekt

    Joel Severin v diskusním listu LKML představil svůj projekt linuxového jádra ve WebAssembly (Wasm). Linux tak "nativně" běží ve webovém prohlížeči. Potřebné skripty pro převod jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 1
    2.11. 23:33 | Nová verze

    Byla vydána nová verze 25.10.31 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    1.11. 07:33 | Komunita

    O víkendu probíhá konference OpenAlt 2025 (Stream). Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.

    Ladislav Hagara | Komentářů: 0
    1.11. 00:55 | IT novinky

    Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.

    Ladislav Hagara | Komentářů: 11
    31.10. 18:33 | IT novinky

    Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).

    Ladislav Hagara | Komentářů: 0
    31.10. 13:22 | Komunita

    Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).

    Ladislav Hagara | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (49%)
     (18%)
     (18%)
     (22%)
     (16%)
     (21%)
     (16%)
     (17%)
    Celkem 303 hlasů
     Komentářů: 15, poslední 2.11. 08:25
    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: 348×
    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.