Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107

    definire funzione con parametro opzionale

    Ciao!
    ho un dubbio, non riesco a definire una funzione in php con un parametro opzionale..vi posto subito il codice:

    Codice PHP:
    public function preview($post$offset $collegamento) {
    return (
    count($anteprima explode(" "$post)) > $offset) ? implode(" "array_slice($anteprima0$offset)) . $collegamento $post

    Siccome, a volte, la stessa funzione mi serve richiamarla senza passargli il parametro $collegamento, ho pensato di modificarla in modo da rendere tale parametro opzionale, senza dover creare una nuova e uguale funzione ma con solo i primi due parametri.
    Allora, dato che nella documentazione delle funzioni di php in molte funzioni i parametri opzionali sono racchiusi tra parentesi quadre ho provato a fare la stessa cosa, così:

    Codice PHP:
    public function preview($post$offset [, $collegamento]) {
    return (
    count($anteprima explode(" "$post)) > $offset) ? implode(" "array_slice($anteprima0$offset)) [. $collegamento] : $post

    Il problema è che mi dà il seguente errore: "Parse error: parse error, expecting `')'' in ... (nella prima linea della funzione)".
    Dove sbaglio?
    grazie per eventuali risp.!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Codice PHP:
    public function preview($post$offset) {
      
    $collegamento = @func_get_arg(2) or false;
      return (
    count($anteprima explode(" "$post)) > $offset) ? implode(" "array_slice($anteprima0$offset)) . $collegamento $post;


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    beh, che dire...mitico!! grazie mille! ..non ci avrei mai pensato!

    PS: giusto per curiosità...il mio approccio era totalmente sbagliato?? nel senso, le parentesi quadre si usano solo "didatticamente" per far evidenziare il fatto che il parametro è opzionale oppure si possono usare anche nel codice?

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    public function preview($post, $offset , $collegamento=null) {

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    nota: puoi anche usare la soluzione con il valore di default (v. ottima risposta di bubi1) ogni volta che i parametri opzionali sono "in coda" a tutti gli altri, usando invece le funzioni come func_get_arg puoi avere più libertà (puoi non indicare alcuna variabile nell'intestazione e gestirle tutte dal corpo)... per le quadre: sì, è solo una forma di scrittura per il manuale

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    107
    molto bene, ottime soluzioni! grazie ad entrambi..anche per il chiarimento sulle parentesi quadre! ciao!

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.