Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Funzioni: saltare un parametro

    Ho un problema probabilmente banale, ma non sono riuscito a trovare nulla a riguardo.

    Io ho una funzione di questo tipo:
    codice:
    function funzione(parametro, parametro2=4, parametro3=6)
    {
       ...
    }
    Cioè una funzione che richiede tre parametri, di cui due predefiniti. Ora io vorrei chiamare la funzione specificando solo il primo e il terzo parametro, lasciando il secondo con il valore di default. Il problema è questo: come posso "saltare il secondo parametro"?
    Purtroppo non mi è possibile modificare la funzione.

    Io vorrei fare questo:
    codice:
    funzione(12,,1);
    Ma ovviamente ricevo un errore. Cosa devo scrivere al posto del secondo parametro per indicare che voglio lasciare il valore di default?

    Mi sembra di aver capito che in alcuni linguaggi questo è proprio impossibile. E in php?

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    function funzione($parametro, $parametro2=4, $parametro3=6)
    {
    if ($parametro2 == 'CICCIA'){$parametro2 = 4;}
    ...
    }

    funzione(12,'CICCIA',1);

  3. #3
    E' sicuramente una buona idea, però così dovrei modificare la funzione, anche solo per aggiungere quel if.
    D'altronde se PHP non offre un modo per "saltare" semplicemente un parametro, credo che dovrò adottare questa proposta, che comunque mi sembra ottima. Prima però vorrei una conferma.

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Confermo e l'accendiamo.

    Poi comunque dipende dalla logica della tua applicazione, in alcuni casi ti puoi arrangiare con func_num_args/func_get_args per avere gli argomenti dinamici.

  5. #5
    E' una funzione talmente semplice che non vale la pena complicare troppo le cose, sistemerò tutto inserendo quella condizione if che mi suggerivi.

    Problema risolto, grazie mille!

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.