Visualizzazione dei risultati da 1 a 7 su 7

Discussione: func costruzione nome

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248

    func costruzione nome

    salve,

    ho scritto un file php, dove inserire le varie function che mi servono.

    Siccome passo anche il nome della func, pensavo di utilizzare la var per la sua creazione

    es.:
    Passo la var $Tab alla func e tramite switch la controllo.
    Se trova il nome la esegue e pensavo di usare questo codice:
    "crea".$Tab();

    Probabilmente bisogna eseguirla in maniera diversa, ma non so come

    Gaetano

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Io non ho capito cosa vuoi fare esattamente... se tu hai una funzione di nome "test" (es. function test() { ... }) e una variabile $var='test'; puoi chiamare la funzione con $var(); e basta... cosa ti serve altro?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    residenza
    Umbria
    Messaggi
    46
    Se ho capito bene vorresti passare il nome di una funzione da eseguire come variabile ...

    non credo sia possibile
    sergio di sunelweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Sì può come ho detto, p.es.:

    Codice PHP:
    function call($function) {
     if (
    function_exists($function)) return($function());
     return (
    false);
    };
    function 
    test() {
     print 
    'Test!';
    };

    $var 'test';
    call($var); 
    Al posto di $var() si può usare la forma più estesa call_user_func($var);, forse più adatta ed eventuali future modifiche del motore

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248
    grazie per la risposta, mi rendo conto di non essere stato proprio chiaro

    ad una funzione passo una variabile
    function( $Var)
    all'interno di questa funzione devo richiamarne un'altra, che ha un nome leggermente differente
    ed ho pensato di creare il nome della funzione da richiamare in questa maniera:
    "crea".$Var();

    penso almeno si faccia così, ma non funziona.

    Forse devo anteporre l'&?:
    &"crea".$Var();

    Per eiyen,
    se ho capito bene, devo creare una var per il nome della funzione:
    $var = 'test'.$Var;

    poi devo richiamare la funzione attraverso call(nomeFunzione)
    call($var);

    e qui non mi è chiaro, devo avere una funzioe solo per il richiamo della funzione creata?
    Non si può richiamare direttamente senza fare il controllo se esista o meno?

    grazie

    function call($function) {
    if (function_exists($function)) return($function());
    return (false);
    };

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    va bene la seconda parte del tuo post...


    $var = '...'; // parte del nome, p.es. "init"
    $fun = 'qualchevuoi'.$var; // p.es. 'demo_'.$var e diventerebbe 'demo_init'
    if (function_exists($fun)) call_user_func($fun); // chiamata

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    248
    ti ringrazio,

    va tutto bene, dopo la tua segnalazione l'errore che commettevo era di usare i doppi apici invece dei singoli.

    Pensavo fosse indifferente.
    Devo leggere qualcosa per capirne la differenza.

    Di nuovo grazie

    Gaetano

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.