Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62

    Membri di classe come funzioni create dinamicamente

    Salve sono abbastanza nuovo al PHP. Espongo subito il problema con un esempio:
    Codice PHP:
    class Foo {
        public 
    $func;
        function 
    __construct($str) {
            
    $this->func create_function('''return "'.$str.'";');
        }
    }

    $obj = new Foo('Pippo');
    $ofunc $obj->func;
    echo 
    $ofunc();     // Questo va bene
    echo $obj->func(); // Questo no: come fare? 

  2. #2
    echo $obj->func;
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62
    Senza indicare eventuali parametri?
    No, così mi stampa solo il nome della funzione creata, tipo "lambda_23".
    Io voglio eseguire la funzione e stampare il valore di ritorno.

  4. #4
    ma per quale arcano motivo vorresti fare una cosa del genere? Al più, se proprio vuoi, usa __call
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62
    Originariamente inviato da Santino83_02
    ma per quale arcano motivo vorresti fare una cosa del genere? Al più, se proprio vuoi, usa __call
    In sostanza si tratta di definire il metodo magico __call sulla classe? Interessante, non lo conoscevo.

    Il motivo lascialo perdere, in realtà c'è ed è valido ma da questo esempio ovviamente non si evince

  6. #6
    Originariamente inviato da MaxArt
    In sostanza si tratta di definire il metodo magico __call sulla classe? Interessante, non lo conoscevo.

    Il motivo lascialo perdere, in realtà c'è ed è valido ma da questo esempio ovviamente non si evince
    allora se c'è ed è valido potresti illuminarmi? chissà, se è valido come dici magari potrebbe essere qualcosa che potrei utilizzare anche io (o altri) nelle loro app
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62
    Originariamente inviato da Santino83_02
    allora se c'è ed è valido potresti illuminarmi? chissà, se è valido come dici magari potrebbe essere qualcosa che potrei utilizzare anche io (o altri) nelle loro app
    Cerco di spiegare...
    L'idea è proprio di creare una classe di oggetti il cui scopo è di generare dinamicamente delle funzioni. Si tratta di una sorta di sprintf, ma molto più versatile ed esteso, e con gli strumenti di un vero linguaggio di programmazione (istruzioni condizionali, cicliche, chiamate a funzioni e così via), presi in prestito dallo stesso linguaggio di scripting che lo genera.
    Avevo già implementato la cosa in Javascript con buoni risultati, ed ora la volevo replicare in PHP. Tutto qui
    La parte "core" funziona già

  8. #8
    Originariamente inviato da MaxArt
    Cerco di spiegare...
    L'idea è proprio di creare una classe di oggetti il cui scopo è di generare dinamicamente delle funzioni. Si tratta di una sorta di sprintf, ma molto più versatile ed esteso, e con gli strumenti di un vero linguaggio di programmazione (istruzioni condizionali, cicliche, chiamate a funzioni e così via), presi in prestito dallo stesso linguaggio di scripting che lo genera.
    Avevo già implementato la cosa in Javascript con buoni risultati, ed ora la volevo replicare in PHP. Tutto qui
    La parte "core" funziona già


    vabbeh se mai pubblicherai qualcosa di open fai un fischio
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    62
    Originariamente inviato da Santino83_02


    vabbeh se mai pubblicherai qualcosa di open fai un fischio
    Certo!
    Il fatto è che per ora il porting è molto scarno, mancano un sacco di funzionalità. Inoltre vorrei integrare alcune peculiarità del PHP al fine di ottimizzare il codice.

    Ti faccio un esempio di utilizzo, però (la classe si chiama Template):
    Codice PHP:
    $templ '__V($nome)__ ha __V($eta)__ anni, ed è __IF($eta>40)__vecchio__ELSE__giovane__ENDIF__.';
    $tobj = new Template($templ'$nome, $eta');
    echo 
    $tobj->get_string('Pippo'20); // "Pippo ha 20 anni, ed è giovane." 
    Ma se volessi pubblicare il codice, dove potrei farlo? Qui nel forum?

  10. #10
    Ma quindi e' una specie di template engine?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.