Le funzioni
Le funzioni sono blocchi di istruzioni distinti dal programmaprincipale che possono essere richiamati quando il programmanecessita l'esecuzione di una determinata operazione perla quale la funzione è stata scritta. Ogni funzione haun nome che la identifica. Le funzioni possono accettare iningresso un numero arbitrario di parametri (variabili) inbase ai quali eseguono una determinata operazione. A questopunto, se necessario, restituiscono un valore in output. Ilvalore restituito può essere memorizzato in unavariabile ed utilizzato quando necessario. Le funzioni sonouno strumento fondamentale in ogni linguaggio diprogrammazione. Esse permettono di suddividerel'elaborazione che deve svolgere l'applicazione inblocchi di istruzioni elementari e quindi più semplicida definire e controllare. Questa tecnica, èattualmente la più diffusa tra i cosiddetti"linguaggi imperativi" e prende il nome diprogrammazione modulare.
L'applicazione richiamerà ogni singola funzionefornendole gli opportuni valori d'ingresso e memorizzandogli eventuali output restituiti. L'ordine in cui lefunzioni vengono richiamate potrà variare a secondadei dati forniti in ingresso dall'utente e/o dairisultati delle funzioni già eseguite.
La definizione di una funzione avviene attraverso laseguente sintassi:
function NomeFunzione($par1, $par2, ..., $parN){CorpoDellaFunzione;}
Dove NomeFunzione è il nome della funzione; $par1,$par2, ..., $parN sono N parametri che la funzione riceve ininput quando ne è richiesta l'esecuzione (Npuò anche essere 0). I parametri passati ad unafunzione non devono essere necessariamente tipi di datielementari (interi, stringhe, ...) ma possono anche essereoggetti definiti dal programmatore (vedi cap. 13). Tra leparentesi graffe ("{" e "}") compare ilcorpo della funzione, cioè le istruzioni che verrannoeseguite al momento dell'attivazione. Eseguito il bloccodi istruzioni viene generalmente restituito un valore,indicato col nome di output o risultato della funzione.
Supponiamo di aver la necessità di definire unafunzione che visualizzi del testo, passato come parametro, inun documento HTML sotto forma di paragrafo. Potremo scrivereuna 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 divisualizzare 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 paginaHTML in cui è definita ed utilizzata la funzionewriteString().
<!--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 finestradel browser, il seguente output:
Questa funzione scrive del testo formattato.
Di seguito riportiamo invece il codice PHP di una funzioneche disegna una scacchiera, le cui dimensioni possono esserepassate 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:
