Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [php] Definire funzioni "al volo"

    Dunque, vorrei definire delle funzioni in PHP "al volo", ossia con un nome scelto dinamicamente.

    In parole povere, dovrebbe essere l'equivalente di scrivere qualcosa come
    Codice PHP:
    function definisciFunzione($nome,$testo) {
        
    // andrebbe definita globalmente, tra le altre cose... 
        
    function $nome() {
           echo 
    $testo;
        }
    }

    definisciFunzione('helloWorld','Hello world!');
    helloWorld(); 
    Naturalmente, visto che non esiste un "function $nome() {}" in PHP , mi serve una soluzione alternativa ( eval()?... :master: )

    Idee?

  2. #2
    Ciao, guardati la call_user_func . Quando richiami una funzione puoi passargli una stringa già pronta o una variabile.

    Esempio:

    Codice PHP:
    $nome="abc";
    call_user_func($nome$eventuale_parametro1
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  3. #3
    La call_user_func la conosco, ma serve per richiamarla... a me serve crearla con un nome dinamico, è diverso..

  4. #4

  5. #5
    Conosco anche questa, che però crea funzioni anonime, mentre a me serve una funzione regolare in tutto e per tutto....
    Ci avviciniamo, ma ancora non è lei..

  6. #6
    forse un eval?

  7. #7
    Già mi sa che è l'unica... ero in cerca di una qualche soluzione un po' più elengante...
    Ma se eval() deve essere che eval() sia...

  8. #8
    Originariamente inviato da lordofthelake
    Già mi sa che è l'unica... ero in cerca di una qualche soluzione un po' più elengante...
    Ma se eval() deve essere che eval() sia...
    Ma cosa fa esattamente questa "eval()"??
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  9. #9
    Originariamente inviato da teju
    Ma cosa fa esattamente questa "eval()"??
    valuta la stringa che metti fra parentesi proprio come se fosse una riga di codice

    ad esempio

    eval("echo 'pippo';");

    equivale a scrivere

    echo 'pippo';

    la sua utilita' sta nel fatto che la stringa puo' essere creata realtime e quindi puoi creare del codice "al volo". Non e' considerata una funzione molto elegante e in genere se ne sconsiglia l'utilizzo.

    PS
    @lordofthelake
    Non avevo notato che nel tuo primo post gia' accennavi all'utilizzo di eval. Scusa, a volte leggo troppo frettolosamente.

  10. #10
    Originariamente inviato da raven74
    Non e' considerata una funzione molto elegante e in genere se ne sconsiglia l'utilizzo.
    Beh, sarà poco "elegante", ma mi pare abbastanza utile! Buona a sapersi!
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

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 © 2024 vBulletin Solutions, Inc. All rights reserved.