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 12:55 | Nová verze

Byla vydána verze 17.12.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Aplikace, které nebyly dosud portovány na KDE Frameworks 5, byly z KDE Aplikací odstraněny.

Ladislav Hagara | Komentářů: 4
dnes 03:00 | Komunita

Na Humble Bundle lze získat počítačovou hru Company of Heroes 2 (Wikipedie, YouTube) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 0
dnes 02:00 | Zajímavý software

Christian Kellner představil na svém blogu projekt Bolt řešící bezpečnost rozhraní Thunderbolt 3 na Linuxu. Pomocí příkazu boltctl nebo rozšíření GNOME Shellu lze komunikovat s démonem boltd a například zakázat neznámá zařízení a předejít tak útokům typu Thunderstrike nebo DMA.

Ladislav Hagara | Komentářů: 3
dnes 01:00 | Nová verze

Po půl roce vývoje od vydání verze 11.0 byla vydána verze 11.1 svobodného softwaru pro vytváření datových úložišť na síti FreeNAS (Wikipedie). Nejnovější FreeNAS je postaven na FreeBSD 11.1. Přehled novinek v příspěvku na blogu. Zdůraznit lze zvýšení výkonu OpenZFS, počáteční podporu Dockeru nebo synchronizaci s cloudovými službami Amazon S3 (Simple Storage Services), Backblaze B2 Cloud, Google Cloud a Microsoft Azure

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

Po dvou měsících vývoje od vydání verze 235 oznámil Lennart Poettering vydání verze 236 správce systému a služeb systemd (GitHub, NEWS).

Ladislav Hagara | Komentářů: 3
včera 20:00 | Nová verze Ladislav Hagara | Komentářů: 0
včera 19:33 | Pozvánky

Pražská Fedora 27 Release Party, oslava nedávného vydání Fedory 27, se uskuteční 19. prosince od 19:00 v prostorách společnosti Etnetera (Jankovcova 1037/49). Na programu budou přednášky o novinkách, diskuse, neřízený networking atd.

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

Byla vydána verze 2.11.0 QEMU (Wikipedie). Přispělo 165 vývojářů. Provedeno bylo více než 2 000 commitů. Přehled úprav a nových vlastností v seznamu změn.

Ladislav Hagara | Komentářů: 0
včera 17:44 | Komunita

Canonical oznámil dostupnost kryptografických balíčků s certifikací FIPS 140-2 úrovně 1 pro Ubuntu 16.04 LTS pro předplatitele podpory Ubuntu Advantage Advanced. Certifikace FIPS (Federal Information Processing Standards) jsou vyžadovány (nejenom) vládními institucemi USA.

Ladislav Hagara | Komentářů: 3
včera 16:11 | Zajímavý software

Společnost Avast uvolnila zdrojové kódy svého dekompilátoru RetDec (Retargetable Decompiler) založeného na LLVM. Vyzkoušet lze RetDec jako webovou službu nebo plugin pro interaktivní disassembler IDA. Zdrojové kódy RetDec jsou k dispozici na GitHubu pod open source licencí MIT.

Ladislav Hagara | Komentářů: 3
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 994 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

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

    11.1.2016 12:59 Milan Uhrák | skóre: 26 | blog: milan_at_ABC
    volání metody v jiné třídě
    Přečteno: 304×
    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: 26 | 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: 26 | 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: 26 | 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.