Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    8

    Esecuzione funzione esterna

    Ciao a tutti,
    sto imparando pian piano il php, e mi sono imbattuto in un semplice (spero, per Voi) problema...

    Ho creato una funzione, "content". Vorrei che quando premo un pulsante , per esempio "info", questa funzione andasse a prendere all'interno di un file esterno contenente tutte le mie funzioni (file che chiamo function.php, dove ho una serie di funzioni) proprio la funzione info e la eseguisse...

    E' possibile fare tutto ciò?

  2. #2
    Per richiamare una funzione di un file "esterno" basta semplciemente includere precedentemente il file
    Codice PHP:
    include "function.php";
    info(); 
    Non mi è molto chiaro il discorso della funzione content e del tasto

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    8
    Intanto grazie per la Tua risposta.

    Il problema è che in realta non posso scrivere così:

    Codice PHP:
    info(); 
    perchè non conosco la funzione da eseguire.
    In realtà ho risolto, non so se nel modo corretto in questo modo:

    Codice PHP:
    call_user_func(content()) 
    content contiene un array fatto in questo modo:

    Codice PHP:
    $actionArray = array(
        
    'home' => array('index.php''Index'),
        
    'download' => array('download.php''Download'),
            );

    require_once(
    '/var/www/html/Sources/' $actionArray[$_REQUEST['action']][0]);
    return 
    $actionArray[$_REQUEST['action']][1]; 
    praticamente prendo l'action associata al pulsante, richiedo il file che contiene quell'azione, e di quel file restitusisco l'azione che mi interessa. Ovviamente questo mi restituisce una stringa, in questo caso per esempio la stringa "Download", che è il nome della funzione ma non ha la parentesi in fondo, e non mi permette di eseguire la funzione.

    Quindi con il comando

    Codice PHP:
    call_user_func(content()); 
    riesco a eseguirla.

    Domanda.....è corretto? O è solo un ufficio complicazione affari semplici?

  4. #4
    L'action ti arriva tramite GET?

    Non è più semplice così:

    Codice PHP:
    if($_GET['action'] == "home")
    {
       include 
    "index.php";
       
    Index();
    }
    else if(
    $_GET['action'] == "download")
    {
       include 
    "download.php";
       
    Download();

    o con uno switch
    Codice PHP:
    switch($_GET['action'])
    {
       case 
    'home': include "index.php"Index(); break;
       case 
    'download': include "download.php"Download(); break;


  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    8
    Certo, così è più semplice se le azioni sono poche...ma se ne inizio ad avere molte...allora mi sembra più semplice come ho fatto...che dici?

  6. #6
    Cosa intendi per semplice? Più facile da scrivere o più prestazionale?
    Secondo me lo switch è la via migliore

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    8
    Si, con più semplice intendevo più prestazionale probabilmente... comunque l'importante è sapere che la procedura era "corretta", ora, in base al numero di funzioni che deciderò di inserire vedrò se mettere l'array o lo switch...

    Grazie!

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.