logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Lezioni di PHP - Lezione 7 - Funzioni PHP e programmazione funzionale

09/10/2025, by Ivan

Penso che ormai siamo arrivati al momento in cui… è ora di iniziare davvero a programmare. Dopo questa lezione potrai dire con sicurezza che hai programmato in PHP. Spesso capita di dover scrivere del codice che si ripete in più pagine o file .php diversi. Per evitare di duplicare il codice, in PHP esistono le funzioni.

Una funzione è una parte indipendente di codice che esegue un calcolo o un’operazione specifica. Alcuni esempi li abbiamo già incontrati nelle lezioni precedenti:

  • time() – restituisce il numero di secondi trascorsi dall’inizio dell’epoca Unix.
  • print(), echo() – funzioni che servono per stampare codice HTML.
  • floor() – restituisce la parte intera di un numero decimale.

Avrai notato che le funzioni si indicano con le parentesi tonde (). La forma generale è quindi: nome_funzione(). Le regole per dare un nome a una funzione sono le stesse di quelle per le variabili, con l’unica differenza che per le funzioni non si usa il simbolo $.

Struttura di una funzione

<?php
function plus_one($x){  // definizione della funzione
  $x = $x + 1;          // corpo della funzione
  return $x;            // valore restituito
}

$y = 1;
$y = plus_one($y);      // chiamata della funzione
print $y;
?>

Come suggerisce il nome, questa funzione aggiunge 1 al valore della variabile. Vediamo in dettaglio di cosa si compone una funzione.

Nome della funzione

  1. Il nome della funzione deve iniziare con una lettera o con un trattino basso (_).
  2. Può contenere solo lettere, numeri e trattini bassi (A-Z, a-z, 0-9, _).
  3. Non può contenere spazi. Se il nome è composto da più parole, si usa un trattino basso (my_function()) oppure la notazione camelCase (myFunction()).

Per definire una nuova funzione si utilizza la parola chiave function.

Corpo della funzione

Il corpo è il codice che la funzione esegue. Nel nostro esempio:

function plus_one($x){
  $x = $x + 1;
  return $x;
}

Il corpo della funzione è racchiuso tra parentesi graffe {}.

Valore restituito

Il valore indicato dopo la parola chiave return è ciò che la funzione restituisce come risultato. Nel nostro caso è la variabile $x.

Parametri della funzione

I parametri sono le variabili o i valori passati tra parentesi dopo il nome della funzione. Nel nostro esempio abbiamo un solo parametro $x, ma se ne possono passare più di uno, separandoli con una virgola:

<?php
function myFunction($x1, $x2, $x3){

}

$y = myFunction($z, 34, 'Ciao, Mondo!');
?>

I nomi indicati nella definizione servono solo come segnaposto per indicare il numero e la posizione dei parametri. Se il numero di parametri passati non corrisponde, PHP genererà un errore:

<?php
function myFunction($x1, $x2, $x3){

}

$y = myFunction(34, 'Ciao, Mondo!'); // chiamata errata: mancano parametri!
?>

Esempio pratico

Creiamo una funzione matematica per calcolare y = -2x + 4 e calcoliamo i valori per diversi x:

<?php
function myFunction($x){
  $y = -2 * $x + 4;
  return $y;
}

$z1 = myFunction(1);
$z2 = myFunction(2);
$z3 = myFunction(3);
print $z1 . '<br />' . $z2 . '<br />' . $z3;
?>

Il risultato sarà: -2, 0, 2. Ora dovresti avere chiaro come funzionano le funzioni in PHP.

Programmazione funzionale

Il nome stesso lo suggerisce: nella programmazione funzionale tutto ruota attorno alle funzioni. In un progetto PHP potresti avere decine di funzioni in un solo file, o anche centinaia in un’intera applicazione. Come gestirle? Semplice: organizziamole per gruppo funzionale in file separati.

Esempio

<?php
function incr($x){
  $x++;
  return $x;
}

function decr($y){
  $y--;
  return $y;
}

$z = 0;
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = decr($z);
print $z;
?>

In questo esempio abbiamo aumentato il valore quattro volte e poi diminuito una volta. Il risultato sarà 3.

Ora spostiamo le funzioni alla fine del file:

<?php
$z = 0;
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = decr($z);
print $z;

function incr($x){
  $x++;
  return $x;
}

function decr($y){
  $y--;
  return $y;
}
?>

Il risultato rimarrà invariato, perché PHP riconosce le funzioni ovunque siano definite all’interno del file.

Organizzare il codice

Quando il numero di funzioni cresce (50, 100 o 1000), conviene dividerle in file separati in base alla loro logica. Ad esempio:

decr.php:

<?php
function decr($y){
  $y--;
  return $y;
}
?>

incr.php:

<?php
function incr($x){
  $x++;
  return $x;
}
?>

Elimina la definizione delle funzioni dal file principale index.php, perché ridefinire una funzione già esistente genera errore. Allo stesso modo, chiamare una funzione non definita genera un errore.

Inclusione dei file

Ora includiamo i file contenenti le funzioni nel nostro index.php:

<?php
include 'incr.php';
include 'decr.php';

$z = 0;
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = incr($z);
$z = decr($z);
print $z;
?>

Ora possiamo usare le funzioni di incr.php e decr.php senza appesantire il file principale. Il risultato rimane lo stesso: 3.

Questa è solo un’introduzione alla programmazione funzionale in PHP — nelle prossime lezioni vedremo le sue potenzialità in modo più approfondito.