5 Mar 2011 0 commenti
Può capitare molto frequentemente che alcune procedure costituite da una serie e combinazione di funzioni e controlli debbano essere svolte frequentemente.
Ad esempio poniamo il caso di ricevere da un form 4 campi (ad esempio: nome, cognome, email e telefono) e per ognuno di questi vogliamo:
- eliminare gli spazi iniziali e finali (funzione trim);
- verificare che non sia vuota (funzione empty).
<?php // verifichiamo che la variabile esista $campo = trim($_campo); if(empty($campo)) { echo 'Il campo è obbligatorio'; } ?>
Dovremmo ripetere la medesima procedura per tutte le variabili che riceveremo dal form!!
Tuttavia, in questi casi conviene definire una funzione personalizzata: il nome della funzione verrà assegnato a nostro piacimento, i parametri verranno scelti in base alle operazioni che vogliamo eseguire, all'interno della funzione indicheremo le operazioni con i parametri indicati, infine dovrà essere indicato il risultato che dovrà dare la funzione.
La sintassi per definire una funzione è molto semplice:
function nome_funzione ( parametri, separati, dalla, virgola)
{
operazioni da eseguire con i parametri;
return risultato_della_funzione;
}
E' importante tener presente che il comando return all'interno della funzione termina la funzione, nel senso che, anche se anche saranno presenti ulteriori passaggi o verifiche, queste non saranno effettuate e il risultato della funzione sarà quello difinito dal return.
Vediamo come si procede con riferimento all'esempio pratico prima proposto: definiamo la funzione "controllo"; il parametro che intendiamo verificare è una variabile qualsiasi; il risultato della funzione sarà FALSE se la variabile risulta essere vuota.
<?php function controllo($variabile) { // eliminiamo gli spazi alla variabile ricevuta come parametro $variabile = trim($variabile); // se è vuota il risultato sarà FALSE if(empty($variabile)) { return FALSE; } return TRUE; } $campo = controllo($_POST['nome']); $campo2 = controllo($_POST['cognome']); $campo3 = controllo($_POST['email']); $campo4 = controllo($_POST['telefono']); /*se uno dei campi è FALSE*/ if (!$campo or !campo2 or !campo3 or !campo4) { echo "controllo non superato"; } else { echo "controllo superato"; } ?>
Le funzioni potranno essere anche molto più complesse di quella appena vista ma la logica seguita non cambierà.

Olimpio Romanella
Sono un appassionato di Web Developing con un particolare debole per php. Mi dedico principalmente dello sviluppo back-end ed in particolare programmazione lato server con php, sviluppo di database relazionali MySql e progettazione di CMS di piccole e medie dimensioni.
Mi avvalgo del framework javascript Jquery, utilizzando molti dei suoi plugin e nei dei miei progetti utilizzo spesso il framework MVC Codeigniter.