Anche se la versione 5 ha portato un grosso supporto per la programmazione ad oggetti (che tratteremo brevemente anche nei paragrafi successivi) le funzioni rimangono comunque la parte fondamentale del linguaggio dato che PHP è nato come linguaggio procedurale, e tutt'oggi molti sviluppatori continuano a seguire questa filosofia di programmazione.
Una funzione è un insieme di istruzioni che hanno lo scopo (la funzione, appunto) di eseguire determinate operazioni. La praticità delle funzioni sta nel fatto che ci consentono di non dover riscrivere tutto il codice ogni volta che abbiamo la necessità di eseguire quelle operazioni comuni: ci basta infatti richiamare l'apposita funzione, fornendole i parametri, cioè i dati/informazioni, di cui ha bisogno per la sua esecuzione.
Le funzioni possono essere incorporate nel linguaggio oppure essere definite dall'utente. In entrambi i casi, il modo di richiamarle è lo stesso.
La sintassi fondamentale con la quale si richiama una funzione è molto semplice:
nome_funzione();
$valore = nome_funzione();
$valore
riceverà il
risultato della funzione. Le funzioni possono essere utilizzate anche
all'interno di espressioni: in tal caso il valore restituito verrà
utilizzato durante la valutazione dell'espressione:$prova = (10 * numero_anni()) - numero_casuale();
Cominciamo dalle principali funzioni che operano sulle variabili in generale:
empty(valore)
- verifica se la variabile che le passiamo è vuota oppure no. Per 'vuota' si intende che la variabile può contenere una stringa vuota o un valore numerico pari a 0, ma può anche essere non definita o essere impostata al valore NULL (l'eventuale indicazione di una variabile non definita, in questo caso, non genera errore notice). Restituisce un valore booleano (vero o falso).
isset(valore)
- verifica se la variabile è definita. Una variabile risulta non
definita quando non è stata inizializzata o è stata impostata col valore
NULL
. Restituisce un valore booleano. is_null(valore)
- verifica se la variabile equivale a
NULL
, ma genera un errore 'notice' se viene eseguito su una variabile non definita. Restituisce un valore booleano. is_int(valore), is_integer(valore), is_long(valore)
- verifica se la variabile è di tipo intero. Le tre funzioni sono equivalenti. Restituiscono un valore booleano.
is_float(valore), is_double(valore), is_real(valore)
- verifica se la variabile è di tipo numerico double (o float). Le tre funzioni sono equivalenti. Restituiscono un valore booleano.
is_string(valore)
- verifica se la variabile è una stringa. Restituisce un valore booleano.
is_array(valore)
- verifica se la variabile è un array. Restituisce un valore booleano.
is_numeric(valore)
- verifica se la variabile contiene un valore numerico. È molto importante la distinzione fra questa funzione e
is_int()
ois_float()
, perchè queste ultime, nel caso di una stringa che contiene valori numerici, restituiscono falso, mentreis_numeric()
restituisce vero. Restituisce un valore booleano. gettype(valore)
- verifica quale tipo di dato le abbiamo passato. Restituisce una stringa che rappresenta il tipo di dato, ad esempio:
boolean
,integer
,double
,string
,array
. È bene però, in uno script, non fare affidamento su questi valori per dedurre il tipo di dato, perchè in versioni future di PHP alcune di queste stringhe potrebbero essere modificate. Meglio usare le funzioni viste prima. print_r(valore)
- stampa (direttamente sul browser) informazioni relative al contenuto della variabile che le abbiamo passato. È utile in fase di debug, quando a seguito di comportamenti 'strani' del nostro script vogliamo verificare il contenuto di certi dati. Se il valore passato è un array, la funzione ne evidenzia le chiavi ed i valori relativi. Restituisce un valore booleano.
unset(valore)
- distrugge la variabile specificata. In realtà non si tratta di una
funzione, ma di un costrutto del linguaggio, e ne abbiamo già parlato
nella lez. 8. Dopo l'
unset()
, l'esecuzione diempty()
ois_null()
sulla stessa variabile restituirà vero, mentreisset()
restituirà falso. Non restituisce valori.
$b = empty($a); // $a non è ancora definita, quindi $b sarà vero $a = 5; $b = isset($a); // vero $b = is_float($a); // falso: $a è un intero $b = is_string($a); // falso $a = '5'; $b = is_int($a); // falso: $a ora è una stringa $b = is_string($a); // vero $b = is_numeric($a); // vero: la stringa ha un contenuto numerico $c = gettype($b); // $c prende il valore 'boolean' unset($a); // eliminiamo la variabile $a; $b = is_null($a); // vero, ma genera errore
$b
i valori booleani restituiti dalle funzioni. Nella pratica, è più
frequente che tali valori non siano memorizzati in variabili, ma che
vengano usati direttamente come condizioni, ad esempio per delle
istruzioni di tipo if
. Ancora un paio di esempi:if (empty($a)) { print ('$a è vuota o non definita!'); } else { print ('$a contiene un valore'); } if (is_numeric($a)){ print ('$a contiene un valore numerico'); } else { print ('$a non contiene un numero'); }
0 commenti:
Posta un commento
Proponi un'idea, segnalaci un problema.
Entra a far parte di CS3, pubblica i tuoi articoli.
Scrivi un commento!