Visualizzazione risultati 1 fino 6 di 6

Discussione: [PHP] Controllare se un valore è stato passato a una funzione

  1. #1
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito [PHP] Controllare se un valore è stato passato a una funzione

    Esiste qualche funzione o metodo per controllare se un parametro è stato passato o no a una funzione?
    Codice PHP:
    function funzione($par1, $par2, $par3 = DEFAULT3, $par4 = DEFAULT4){
    if(!isset(
    $par1) && !isset($par2)){
    echo
    "Parametri 1 e 2 non impostati";
    }
    elseif(!
    impostato($par3) && !impostato($par4)){
    echo
    "Parametri 3 e 4 non impostati";
    }
    }
    NB: Usare l'isset() con il 3 e il 4 non funziona perchè vengono impostati al valore di default.
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  2. #2
    Guest

    Predefinito

    Intanto immagino che DEFAULT3 e DEFAULT4 siano stringhe, vero? Comunque è inutile controllare se i parametri 1 e 2 siano stati impostati in quanto PHP restituisce automaticamente errore se così non è. Per il 3 e il 4 invece ti basta controllare se sono diversi dal valore di default, no? Oppure non metterli come default!

  3. #3
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Citazione Originalmente inviato da alessandro1997 Visualizza messaggio
    Per il 3 e il 4 invece ti basta controllare se sono diversi dal valore di default, no? Oppure non metterli come default!
    No è inutile controllare se il valore è diverso da quello di default...

    Saluti!

  4. #4
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Intanto DEFAULT3 e DEFAULT4 possono anche essere numeri, ma non è quello il problema. Se ho fatto questa domanda ci sarà un motivo, no? Se esiste un modo per controllare se ho passato il parametro anche se c'è quello di default dimmi che esiste, sennò dimmi che non esiste.

    Per la cronaca, voglio fare una funzione con due diversi prototipi usando la stessa funzione:
    Codice PHP:
    function funzione($par1, $par2, $par3 = DEFAULT3, $par4 = DEFAULT4) //prototipo 1
    function funzione($par1, $par2 = DEFAULT3, $par3 = DEFAULT4) //prototipo 2, $par4 non esiste
    ma nello scrivere la funzione voglio lasciare il primo prototipo. Il modo più facile sarebbe togliere i valori di default, ma è quello che NON voglio.
    Ultima modifica di ageofempiresgif : 14-12-2009 alle ore 20.00.30
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  5. #5
    programmazioned non è connesso Utente attivo
    Data registrazione
    25-03-2008
    Messaggi
    440

    Predefinito

    func_get_arg() restituisce false se il parametro referenziato non è settato, e non considera i parametri di default.

    Codice PHP:
    if(func_get_arg(0) === false && func_get_arg(1) === false)
    Ciao!

    P.S: In una classe l'overloading è supportato nativamente in PHP5. Vedi il metodo __call().
    Ultima modifica di programmazioned : 14-12-2009 alle ore 20.24.35

  6. #6
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Perfetto, funziona! Grazie programmazioned
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •