PHP/Programmazione/Funzioni di base
Una funzione è un blocco di codice che può richiedere uno o più parametri in ingresso e può fornire un valore di uscita.
PHP mette a disposizione numerose funzioni predefinite, di cui non si ha sottomano il codice ma risultano molto utili o talvolta indispensabili nella programmazione delle nostre applicazioni server.
In PHP la maggior parte delle funzioni restituisce un valore anche quando ciò potrebbe non essere ovvio: spesso, ad esempio, le funzioni restituiscono un valore boolean che indica l'esito della sua esecuzione.
Questo elenco mostra solo le principali funzioni che vi capiterà di utilizzare programmando in PHP. Per l'elenco completo, consulta le referenze ufficiali di PHP.
Usare le funzioni
[modifica | modifica sorgente]Per utilizzare una funzione non bisogna fare altro che richiamarla (o invocarla). Se esiste ad esempio una funzione abs
sarà sufficiente usarla in questa maniera:
$a = abs($b);
$c = 4 * abs(-65);
Nel momento in cui ci riferiamo alla funzione si dice che la stiamo appunto richiamando.
Funzioni di stringa
[modifica | modifica sorgente]- strlen
strlen(stringa)
- Restituisce il numero di caratteri di una stringa
- strstr
strstr(stringa1, stringa2)
- Restituisce la parte di
stringa1
che si trova dopo la prima occorrenza distringa2
instringa1
. Se non viene trovata alcuna occorrenza, la funzione restituiscefalse
. Ad esempio:
strstr("it.wikibooks.org", ".")
- restituisce
".wikibooks.org"
- strpos
strpos(stringa1, stringa2)
- Restituisce la posizione della prima istanza di
stringa2
instringa1
. Si noti che il conteggio dei caratteri avviene a partire da 0. Ad esempio:
strpos("it.wikibooks.org", ".")
- restituisce 2. Se si vuole cercare il carattere successivo si può usare questo metodo:
strpos(strstr("it.wikibooks.org", "."), ".")
- chr e ord
chr(numero)
ord(carattere)
- Queste due funzioni restituiscono rispettivamente il carattere corrispondente al carattere numero nella tabella ASCII e la posizioni di
carattere
sempre nella tabella ASCII. Le due funzioni sono complementari.
Funzioni numeriche
[modifica | modifica sorgente]- abs
abs(numero)
- Restituisce il valore assoluto di
numero
- pi
pi()
- Restituisce un valore approssimato di Pi greco
- pow
pow (base, esponente)
- Restituisce
base
elevato all'esponente
. L'esponente fornito deve essere positivo
- rand
rand(min, max)
- Restituisce un numero casuale compreso tra
min
emax
(inclusi)
- round, ceil, floor
round(numero, n)
ceil(numero)
floor(numero)
- Restituiscono il valore di
numero
arrotondato rispettivamente din
posizioni decimali, all'unità per eccesso e all'unità per difetto
- number_format
number_format(numero, n, sep_decimali, sep_migliaia)
- Restituisce una stringa contenente un valore formattato di
numero
in base ai parametri passati. Accetta uno, due o quattro parametri. - Se ne viene passato solo uno, viene restituito il numero senza decimali usando la virgola come separatore di migliaia
- Se vengono passati due parametri, viene restituito il numero formattato con
n
cifre decimali, usando il punto come separatore decimale e una virgola come separatore di migliaia. - Se sono passati tutti i parametri, viene restituito il numero con
n
cifre decimali, usandosep_decimali
come separatore decimale esep_migliaia
come separatore di migliaia.
- base_convert
base_convert(numero, da_base, a_base)
Converte una stringa contenente numero
espresso nella base da_base
in una stringa contenente il corrispondente nella base a_base
. Ad esempio:
base_convert('f',16,10);
- restituisce 15.
Funzioni per data e ora
[modifica | modifica sorgente]- time
time()
- La principale funzione di data-ora è
time
che restituisce l'ora corrente del server in formato Unix Timestamp. Il formato Unix Timestamp indica il numero di secondi passati dalla cosiddetta Unix Epoch (1 gennaio 1970 alle ore 00:00:00 GMT) ed è usato da PHP per gestire le date.
- date
date(formato, ora)
- Una volta ottenuto un valore di data valido (ad esempio tramite la funzione
time
o da un database MySql) è possibile formattarlo usando la funzionedate
che accetta un parametro obbligatorio, la stringaformato
, e un parametro facoltativoora
che specifica la marcatura temporale da formattare e restituisce una stringa. - Per formattare una data può essere comodo usare le costanti predefinite di PHP per la formattazione delle date come DATE_COOKIE, che formatta le date secondo il metodo usato nei cookie HTML (es. Monday, 15-Aug-05 15:52:01 UTC) (si veda qui· l'elenco completo)
- Per ottenere un formato personalizzato, nella stringa è possibile inserire i seguenti parametri (si ricorda che l'output può variare in base alle impostazioni di lingua del server):
Carattere | Descrizione | Esempio |
---|---|---|
Giorni | ||
d | Giorno del mese, senza zeri aggiuntivi | 1 - 31
|
j | Giorno del mese, con zeri aggiuntivi | 01 - 31
|
D | Giorno della settimana in formato breve (tre lettere) | Mon - Sat
|
l (L minuscola) | Giorno della settimana in formato completo | Monday - Saturday
|
S | Suffisso del giorno del mese per i numeri ordinali inglesi (funziona bene insieme a d) | st , nd , rd , th
|
Mesi | ||
n | Numero del mese, senza zeri aggiuntivi | 1 - 12
|
m | Numero del mese, con zeri aggiuntivi | 01 - 12
|
F | Nome del mese completo | January - December
|
Anni | ||
y | Numero dell'anno in due cifre | 92 , 01
|
Y | Numero dell'anno in quattro cifre | 1992 , 2001
|
L | Restituisce "1" se l'anno è bisestile, "0" altrimenti | |
Ore | ||
g / G | Ora in formato 12/24 ore, senza zeri aggiuntivi | 1 - 12 , 0 - 23
|
h / H | Ora in formato 12/24 ore, con zeri aggiuntivi | 01 - 12 , 00 - 23
|
i / s | Minuti/secondi, con zeri aggiuntivi | 00 - 59
|
Altro | ||
U | Secondi dalla Unix Epoch (come time )
|
- È possibile ottenere inoltre qui l'elenco completo. I valori non predefiniti saranno usati tali quali; è possibile inoltre evitare i caratteri speciali siano valutati è possibile usare il carattere di commutazione "\" davanti alla lettera. In questo caso si faccia però attenzion a commutare il carattere "\" nel caso le sequenze non corrispondano ad altri caratteri di commutazione. Ad esempio:
date("l \\t\h\e jS") //è necessario commutare "\" perché \t è la tabulazione
- restituisce, ad esempio,
Sunday the 29th
.
- mktime
mktime(ore, minuti, secondi, mese, giorno, anno)
- Restituisce una data in un formato valido per PHP partendo dai valori passati come parametri. L'anno può essere espresso con 2 o 4 cifre.
- L'uso di questa funzione permette di creare facilmente date da formattare. Ad esempio:
echo(date("d F Y", mktime(0,0,0,30,07,1992)));
- restituisce
30 luglio 1992
Altre funzioni utili
[modifica | modifica sorgente]- include e include_once
include(file)
include_once(file)
Queste due funzioni risultano molto utili nella programmazione di applicazione complesse, in quanto permettono di includere nella pagina PHP un altro file esterno.
Quando incontra queste funzioni, il motore PHP:
- chiude i tag <?php ?> entrando quindi in modalità normale
- inserisce ed analizza il testo del file
file
; per inserire codice PHP sarà quindi necessario inserire nuovamente i tag <?php e ?> - riapre il tag <?php
In questo modo è possibile creare applicazione modulari inserendo nel file che verrà incluso le nostre funzioni personalizzate (che vedremo nel prossimo modulo.
Si faccia attenzione se si inserisce codice PHP nei file da includere a salvarli con estensione .php (soprattutto se contengono informazioni sensibili come password o dati personali) altrimenti un eventuale utente malintenzionati potrebbe leggerne il contenuto, in quanto il codice PHP non verrebbe prima letto dal server.
La funzione include_once
si differenzia da include
in quanto include il file solo se esso non è già stato incluso nella pagina.