La programmazione funzionale è di enorme
importanza nella creazione di un programma o, come nel nostro caso,
di script scritti nel linguaggio lato-server PHP.
Ecco alcuni vantaggi nell’uso delle funzioni:
Basandoci su questi tre punti andiamo oggi a
sviluppare la nostra seconda funzione scritta in PHP.
Nel primo tutorial abbiamo visto come tenere traccia del numero di
visitatori che accedono al nostro sito senza appoggiarsi a un
database. Quest’oggi vedremo una funzione leggermente più semplice
ma comunque molto utile: limitare il numero di caratteri di una
stringa.Corsi online di WebMasterPoint.org:
Strutturazione della funzione.
Prima di tutto bisogna valutare quali saranno i parametri in
ingresso della funzione e quali saranno invece i parametri
restituiti.
Nella nostra prima funzione ci limiteremo a recuperare la stringa
e a tagliarla dopo 10 caratteri (valore variabile stabilito
all’interno della funzione). La funzione ovviamente restituirà la
stringa elaborata priva dei caratteri in eccesso.
Il codice.
function tagliaStringa($testo) {
# CONFIGURAZIONE
# imposto il numero massimo di caratteri da visualizzare
# esclusi i (...) finali
$maxCaratteri = 10;
# SCRIPT
# salvo il numero di caratteri della stringa passata
$caratteri = strlen($testo);
# controllo se $caratteri è maggiore di $maxCaratteri
if($caratteri > $maxCaratteri) {
return substr($testo, 0, $maxCaratteri)."...";
} else {
return $testo;
}
}
?>
Esaminiamo la funzione.
Come potete vedere la variabile maxCaratteri imposta il numero
massimo di caratteri da stampare. La variabile caratteri invece
contiene il risultato dell’elaborazione della funzione strlen($testo).
La funzione strlen() restituisce il numero di caratteri di una
stringa; nel nostro caso specifichiamo di contare il numero di
caratteri presenti nella variabile testo passata alla funzione per
copia.
Nella funzione troviamo un’istruzione di controllo if; in poche
parole verifichiamo se i caratteri della stringa sono maggiori di
quelli da noi impostati. Se ciò accade restituiamo i primi 10
caratteri della stringa seguiti da tre punti (…), altrimenti
restituiamo la variabile testo come ci è stata passata.
Vediamo ora come richiamare questa funzione.
Per prima cosa creeremo una variabile di tipo stringa con il
seguente valore: “WebMasterPoint.org, il punto di riferimento per
i webmaster italiani”.
Successivamente passeremo la variabile alla funzione
tagliaStringa() e salveremo il risultato nella variabile
risultato. In fine stamperemo il valore della variabile.
# assegniamo la stringa alla variabile $stringa
$stringa = “WebMasterPoint.org, il punto di riferimento per i webmaster italiani”;
# passiamo per copia il valore di stringa alla funzione tagliaStringa();
$risultato = tagliaStringa($stringa);
# stampiamo il valore di $risultato
echo $risultato;
?>
Ora provate a sostituire il valore della variabile stringa con
“prova” (senza le virgolette!!).
Passiamo ora al secondo livello di difficoltà. Perché non fare in
modo che la variabile maxCaratteri sia settata per default a 10
ma, nel caso sia specificato come valore di ingresso della
funzione, assumi il valore passato?
Quale utilità potrebbe avere questa modifica? Provate a pensarci
un pò. Supponete di avere due celle una più grande dell’altra. La
prima richiama le news dal database e mantiene la corretta
formattazione fino a 15 caratteri (esclusi gli eventuali tre
puntini finali) e la seconda mantiene la corretta formattazione
fino a 8 caratteri. Cosa fare?
Molti programmatori alle prime armi sarebbero tentati a fare una
copia della funzione tagliaStringa() e chiamarla, perché no,
tagliaStringa2(); la prima funzione ha settata la variabile
maxCaratteri a 15 mentre la seconda ha settata la variabile
maxCaratteri a 8.
Certo è giusto sintatticamente parlando ma non per quanto riguarda
una corretta programmazione funzionale. Perché fare due funzioni
che svolgono lo stesso lavoro quando se ne può fare solo una?
Il codice.
function tagliaStringa($testo, $maxCaratteri = 10) {
# SCRIPT
# salvo il numero di caratteri della stringa passata
$caratteri = strlen($testo);
# controllo se $caratteri è maggiore di $maxCaratteri
if($caratteri > $maxCaratteri) {
return substr($testo, 0, $maxCaratteri)."...";
} else {
return $testo;
}
}
?>
Esaminiamo la funzione.
Come potete vedere abbiamo eliminato tutta questa parte di codice:
# CONFIGURAZIONE
# imposto il numero massimo di caratteri da visualizzare
# esclusi i (...) finali
$maxCaratteri = 10;
Quindi non viene più assegnato il valore 10 alla variabile
maxCaratteri all’interno della funzione, bensì il valore della
variabile viene passato per copia alla funzione in questo modo:
function tagliaStringa($testo, $maxCaratteri = 10)
Come potete vedere la variabile $testo è obbligatoria mentre la
variabile $maxCaratteri è facoltativa. Se viene specificato assume
il valore desiderato altrimenti assume il valore 10 (valore di
default)
Vediamo ora come richiamare questa nostra nuova funzione.
# assegniamo la stringa alla variabile $stringa
$stringa = “WebMasterPoint.org, il punto di riferimento per i webmaster italiani”;
# passiamo per copia il valore di stringa alla funzione tagliaStringa();
$risultato = tagliaStringa($stringa);
# stampiamo il valore di $risultato
echo $risultato;
?>
Provate a eseguire questo. E’ visibilmente uguale a quello usato prima; infatti restituisce anche lo stesso risultato, cioè restituisce i primi 10 caratteri seguiti dai tre puntini. Provate ora a scrivere questo:
# assegniamo la stringa alla variabile $stringa
$stringa = “WebMasterPoint.org, il punto di riferimento per i webmaster italiani”;
# passiamo per copia il valore di stringa alla funzione tagliaStringa();
$risultato = tagliaStringa($stringa, 3);
# stampiamo il valore di $risultato
echo $risultato;
?>
Questa volta abbiamo aggiunto un nuovo parametro alla funzione. Si
tratta del secondo parametro, che viene salvato nella variabile
$maxCaratteri. Così facendo diciamo al nostro script di stampare
solo le prime due lettere della stringa, seguite dai tre puntini.
Se avete problemi a far funzionare questo script non esitate a
postare nel nuovo forum di webmasterpoint.org nella sezione PHP.
- Risultati in tempo reale su Google in Italia da Facebook e Twitter. Come funziona.
Google sta introducendo anche per l'Italia il servizio Real Time Search. Permetterà di monitorare le conversazioni sui social network in tempo reale.
- Telefonare gratis dal cellulare con Skype e Wi-Fi: promozione nel weekend
- TV e decoder Google: alleanza con Sony, Intel e Logitech. Il set-top box è già in prova.
- Netbook, console, cellulari, videocamere: prezzi più alti in Italia per nuova tassa equo compenso
- ADSL senza telefono: offerte a confronto. Il prezzo è più alto e conviene meno.
- Collegare 2 PC tra loro tramite porta USB: come fare
USB GO! Link Cable è un dispositivo che consente la trasmissione diretta di dati tra due personal computer. - Script e-mail, e-commerce e database in ASP.NET download gratis
- Vedere film, telefilm e video scaricati da Internet o in streaming sul televisore con i Mediacenter. Due nuovi modelli provati.
- Proprietà/tag HTML 5
- Outlook: usare al meglio il programma di posta elettronica con 3 software gratis add-on


![[SPONSOR] 9NetWeb (Link Esterno)](http://www.webmasterpoint.org/sponsor/9netweb_120.gif)
![[SPONSOR] Aruba (Link Esterno)](/sponsor/aruba_90.gif)

Segnala questo articolo ai tuoi amici su Facebook
Stampa Pagina
Info sull'autore
ICQ
EMAIL
DISCUTI DI QUESTA LEZIONE SUL FORUM![[SPONSOR] eDomain (Link Esterno)](http://www.webmasterpoint.org/sponsor/edomain_120.gif)
![[SPONSOR] Rubalo (Link Esterno)](/sponsor/rubalo.gif)
![[SPONSOR] ConsultingWeb (Link Esterno)](/sponsor/consultingweb_120.gif)