PHP/Programmazione/Funzioni di base

Indice del libro

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

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
  • 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 di stringa2 in stringa1. Se non viene trovata alcuna occorrenza, la funzione restituisce false. Ad esempio:
 strstr("it.wikibooks.org", ".")
restituisce ".wikibooks.org"
  • strpos
strpos(stringa1, stringa2)
Restituisce la posizione della prima istanza di stringa2 in stringa1. 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
  • 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 e max (inclusi)
  • round, ceil, floor
round(numero, n)
ceil(numero)
floor(numero)
Restituiscono il valore di numero arrotondato rispettivamente di n 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, usando sep_decimali come separatore decimale e sep_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
  • 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 funzione date che accetta un parametro obbligatorio, la stringa formato, e un parametro facoltativo ora 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
  • 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:

  1. chiude i tag <?php ?> entrando quindi in modalità normale
  2. inserisce ed analizza il testo del file file; per inserire codice PHP sarà quindi necessario inserire nuovamente i tag <?php e ?>
  3. 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.