> MENU
brasero.png

Review: Ubuntu 8.04 Hardy Heron Alpha 4

readius1.jpg

Readius: L’oggetto dei vostri desideri

6 febbraio 2008 Visualizzazioni: 1479 Focus

Corso su PHP: Le Funzioni (2)

Eccoci alla seconda lezione dedicata alla creazione e l’uso di funzioni personalizzate. Quest’oggi vedremo come è possibile creare delle funzioni che ritornino un valore e come si fa a suddividere il nostro script in più file, in modo da migliorarne l’organizzazione e la leggibilità. Ci soffermeremo anche sul passaggio dei parametri alle funzioni per valore o per riferimento.

Vediamo subito il codice completo di questa lezione (scarica), che analizzeremo in seguito (funzioni2.php):

Corso PHP - Funzioni - funzioni2.php

e per la prima volta, creiamo anche un altro file, nella stessa cartella del primo, e lo chiamiamo utils.php

Corso PHP - Funzioni - utils.php

Se eseguiamo funzioni2.php, ecco il risultato che ci si presenta:

Mario Rossi
$tmp = 0
$tmp = 0
$tmp = 1

Dunque, analizziamo prima il file utils.php. Potete vedere bene che all’interno ci sono solamente 3 funzioni, quindi da quello che abbiamo visto nella lezione precedente è facile capire che del codice contenuto qui, niente verrà interpretato fino a quando una di queste funzioni non sarà esplicitamente invocata. Ma come si fa, dato che in questo file vogliamo tenerci solamente le funzioni e nient’altro?

Inclusione
Semplice, tutto si riduce ad una semplice istruzione, che trovate all’interno di funzioni2.php ossia

require_once(‘utils.php’);

Che significa: Da ora in poi voglio utilizzare in questa pagina il codice contenuto all’interno del file utils.php.

PHP fornisce diverse keyword per includere un file, sta a voi scegliere quella che più si adatta alle vostre esigenze :

  • include: Prende il contenuto del file passato come argomento e lo inserisce in questo punto. Se il file non viene trovato, l’esecuzione continua ugualmente
  • include_once: Come include ma se questa istruzione è chiamata in più punti dello script, il codice viene incluso una volta sola
  • require: Prende il contenuto del file passato come argomento e lo inserisce in questo punto. Se il file non viene trovato, l’esecuzione termina
  • require_once: Come require ma se questa istruzione è chiamata in più punti dello script, il codice viene incluso una volta sola

Valori di ritorno
Un’altra cosa nuova che non abbiamo mai incontrato fino ad ora è la parola chiave return all’interno della funzione concatenaStringhe. L’esempio è molto semplice (e pressochè inutile) ma serve a rendere l’idea: ho una funzione, gli passo dei dati e voglio che mi venga fornita un risultato dall’elaborazione dei dati che gli ho fornito. Nel nostro caso, il risultato è la concatenazione delle due stringhe passate come parametro.

In fase di esecuzione dello script, come vedete alla riga 5 di funzioni2.php, il valore di ritorno viene inserito nel punto dove la funzione è stata chiamata, infatti nel nostro caso sarebbe stato come scrivere:

echo ‘Mario Rossi’.'

E’ possibile fare ritornare qualsiasi tipo dato ad una funzione, compresi gli array.

Passaggio per riferimento
Fino ad ora, abbiamo sempre visto che per specificare un parametro da passare alla funzione è sufficiente scrivere il nome della variabile nell’intestazione della funzione stessa. Questo va benissimo se il valore di questo parametro deve solamente essere usato nell’elaborazione del risultato, ma se il suo valore dovesse essere modificato all’interno della funzione?

La funzione incrementaPerValore è la risposta, e vi mostra come le modifiche ai valori dei parametri vengono perse quando si esce dalla funzione! Questo perché il parametro si dice “passato per valore” ossia l’interprete fa una copia della variabile che voi passate alla funzione, e la funzione lavora sempre e solo sulla copia.

Se avete la necessità di modificare il valore di un parametro all’interno di una funzione, allora dovete “passarlo per riferimento” per evitare che si lavori su una copia, forzando l’utilizzo della stessa variabile che avete specificato. E’ molto più semplice a farsi che a dirsi. Infatti, come vedete nell’intestazione della funzione incrementaPerRiferimento, è sufficiente anteporre & al nome della variabile.

Continuate a seguirci!

LEZIONI PRECEDENTI:

11 Dicembre 2007: Introduzione
17 Dicembre 2007:
Installazione di una piattaforma LAMP su Ubuntu Linux
18 Dicembre 2007:
Dentro l’HTML
20 Dicembre 2007:
E tu di che tipo sei?
7 Gennaio 2008:
Operiamo?
10 Gennaio 2008:
Ed ecco gli Array
17 Gennaio 2008: Controllare l’esecuzione (1)
25 Gennaio 2008: Controllare l’esecuzione (2)
4 Febbraio 2008
: Le Funzioni (1)

di Rocco Zanni - TuxJournal.net
Rocco Zanni Blog

twittergoogle_pluslinkedinmail