Le funzioni
Le funzioni sono blocchi di istruzioni distinti dal programma
principale che possono essere richiamati quando il programma
necessita l'esecuzione di una determinata operazione per
la quale la funzione è stata scritta. Ogni funzione ha
un nome che la identifica. Le funzioni possono accettare in
ingresso un numero arbitrario di parametri (variabili) in
base ai quali eseguono una determinata operazione. A questo
punto, se necessario, restituiscono un valore in output. Il
valore restituito può essere memorizzato in una
variabile ed utilizzato quando necessario. Le funzioni sono
uno strumento fondamentale in ogni linguaggio di
programmazione. Esse permettono di suddividere
l'elaborazione che deve svolgere l'applicazione in
blocchi di istruzioni elementari e quindi più semplici
da definire e controllare. Questa tecnica, è
attualmente la più diffusa tra i cosiddetti
"linguaggi imperativi" e prende il nome di
programmazione modulare.
L'applicazione richiamerà ogni singola funzione
fornendole gli opportuni valori d'ingresso e memorizzando
gli eventuali output restituiti. L'ordine in cui le
funzioni vengono richiamate potrà variare a seconda
dei dati forniti in ingresso dall'utente e/o dai
risultati delle funzioni già eseguite.
La definizione di una funzione avviene attraverso la
seguente sintassi:
function NomeFunzione($par1, $par2, ..., $parN)
{
CorpoDellaFunzione;
}
Dove NomeFunzione è il nome della funzione; $par1, $par2, ..., $parN sono N parametri che la funzione riceve in input quando ne è richiesta l'esecuzione (N può anche essere 0). I parametri passati ad una funzione non devono essere necessariamente tipi di dati elementari (interi, stringhe, ...) ma possono anche essere oggetti definiti dal programmatore (vedi cap. 13). Tra le parentesi graffe ("{" e "}") compare il corpo della funzione, cioè le istruzioni che verranno eseguite al momento dell'attivazione. Eseguito il blocco di istruzioni viene generalmente restituito un valore, indicato col nome di output o risultato della funzione.
Supponiamo di aver la necessità di definire una funzione che visualizzi del testo, passato come parametro, in un documento HTML sotto forma di paragrafo. Potremo scrivere una funzione come la seguente:
function writeString ($str)
{
echo("<FONT FACE="Comic Sans MS" SIZE=3><P ALIGN="JUSTIFY">$str</P></FONT>");
}
Quando all'interno del codice PHP avremo bisogno di visualizzare del testo sotto forma di paragrafo sarà sufficiente utilizzare l'istruzione:
writeString("Testo del paragrafo che verrà impaginato dalla funzione");
di seguito è riportato il codice completo della pagina HTML in cui è definita ed utilizzata la funzione writeString().
<!--file: helloworld.html -->
<HTML>
<HEAD>
<TITLE>Example 3.01</TITLE>
</HEAD>
<BODY>
<?
function writeString ($str)
{
echo("<FONT FACE="Comic Sans MS" SIZE=3><P ALIGN="JUSTIFY">$str</P></FONT>");
}
writeString ("Questa funzione scrive del testo formattato.");
?>
</BODY>
</HTML>
Questa pagina genererà, all'interno della finestra del browser, il seguente output:
Questa funzione scrive del testo formattato.
Di seguito riportiamo invece il codice PHP di una funzione che disegna una scacchiera, le cui dimensioni possono essere passate come parametri d'ingresso.
<!--file: helloworld.html -->
<HTML>
<HEAD>
<TITLE>Example 3.01</TITLE>
</HEAD>
<BODY>
<?
function creaScacchiera ($lines, $cols)
{
$j=1;
echo ("<TABLE ALIGN=CENTER BORDER=1 CELLSPACING=0>");
while ($j<=$lines) {
echo ("<TR>");
$k=1;
while ($k<=$cols) {
if (($j+$k)%2>0)
echo ("<TD WIDTH=30 HEIGHT=30 BGCOLOR=#000000> </TD>");
else
echo ("<TD WIDTH=30 HEIGHT=30 BGCOLOR=#FFFFFF> </TD>");
$k++;
}
echo("</TR>");
$j++;
}
echo ("</TABLE><BR><BR>");
}
creaScacchiera(8,8);
creaScacchiera(4,4);
?>
</BODY>
</HTML>
L'output generato sarà il seguente: