LE FUNZIONI IN PHP

DICHIARAZIONE DI UNA FUNZIONE

php logoSi definisce una funzione con la keyword function e un nome significativo. Non è bene dare nomi che non identificano la funzione svolta dall’algoritmo. Se vogliamo che le istruzioni interne a una funzione siano eseguite dobbiamo, come si dice, invocarla. Anche se poniamo la call prima della definizione non abbiamo alcun errore, il codice viene preventivamente analizzato e le funzioni vengono messe in memoria. In PHP possiamo definire funzioni anonime. quello che possiamo fare con tali funzioni è assegnarla a una variabile, eseguirla o usarla come callback. Una funzione può ricevere dati in input e restituire valori, in questo senso essa è un blocco a sé stante, tramite l’input e l’output dialoga con il mondo esterno.

DUPLICAZIONE DEL CODICE

Una funzione può essere invocata un qualsiasi numero di volte, questo ci consente di non duplicare il codice. La duplicazione del codice è una cosa da evitare quando sviluppiamo un’applicazione. Per quanto possiamo modificare dall’interno di una funzione una variabile definita nello scope globale, in realtà questa non è una buona pratica di programmazione. Le funzioni sono un livello di astrazione, questo significa che noi dialoghiamo con una funzione attraverso il suo nome, ma non dobbiamo conoscere come funziona internamente, astrarre significa allontanarci dai dettagli implementativi di una funzione che realizza un determinato compito.

CODICE DI ESEMPIO

Copy to Clipboard

PARAMETRI DELLE FUNZIONI

Il codice a lato spiega i parametri delle funzioni.

Parameters

VARIABLE-LENGTH ARGUMENT LIST

function test($p1,$p2,$p3 = 1){

}

test(1,2);

Se la funzione è stata definita con tre parametri obbligatori otteniamo un errore fatale se ne passiamo di meno. Assegniamo al terzo parametro un valore di default. Ora non ci sono errori. Alcune volte non sappiamo a priori quanti parametri passeremo alla funzione, se vogliamo avere una funzione che accetti un numero variabile di valori utilizziamo l’operatore Se ad esempio la funzione somma si aspetta due parametri obbligatori lì possiamo aggiungere.

Copy to Clipboard

TYPE HINTING

function calcolaValore(float $p1){

      var_dump($p1);

}

$valore = “22”;

calcolaValore($valore);

Quando invochiamo una funzione non vi è alcun controllo sui parametri, possiamo passare qualsiasi tipo di dato. Se vogliamo avere un minimo di controllo sui valori passati mettiamo prima del parametro il tipo che si aspetta. Se ora proviamo a passare la stringa PHP otterremo un errore fatale. Se passiamo un intero tale valore viene convertito in automatico da PHP in float. Anche se passiamo una stringa con all’interno un intero questa viene convertita da PHP in float. Se vogliamo lavorare in modo ancor più rigoroso senza che PHP effettui queste sue conversioni automatiche aggiungiamo questa istruzione declare(strict_types = 1); L’istruzione declare deve essere la prima istruzione dello script. Possiamo effettuare type hinting anche per i valori che la funzione ritorna, basta indicare due punti : e il tipo dopo la dichiarazione dei parametri.

Type Hinting

NULLABLE E UNION TYPES

Nullable

Se vogliamo che la funzione come parametro $p1 accetti un int e un float lo possiamo fare grazie a union types introdotto in PHP 8. Basta aggiungere una barra verticale e l’altro tipo che vogliamo sia ammesso. Se vogliamo che un parametro sia di qualsiasi tipo indichiamo mixed. In questo caso possiamo passare qualsiasi tipo di dato compreso null.

APPROFONDIMENTO

Le funzioni in PHP sono blocchi di codice che eseguono una specifica operazione. Possono essere richiamate in qualsiasi punto del programma per eseguire il compito che è stato loro assegnato, il che aiuta a mantenere il codice organizzato e riutilizzabile. Ecco una descrizione dettagliata delle funzioni in PHP:

1. Definizione di una Funzione

In PHP, una funzione viene definita utilizzando la parola chiave function, seguita dal nome della funzione e da una lista di parametri (se presenti) racchiusi tra parentesi tonde, e il corpo della funzione racchiuso tra parentesi graffe. Ad esempio:

function nomeFunzione($parametro1, $parametro2) {
// corpo della funzione
}

2. Richiamo di una Funzione

Dopo aver definito una funzione, puoi richiamarla ovunque nel tuo script semplicemente usando il suo nome seguito da parentesi tonde. Se la funzione accetta parametri, devi passarli all’interno delle parentesi. Esempio:

nomeFunzione($valore1, $valore2);

3. Parametri e Argomenti

I parametri sono variabili specificate tra le parentesi della definizione della funzione. Quando chiami la funzione, puoi passare i valori (argomenti) a questi parametri. I parametri possono avere valori predefiniti, che verranno utilizzati se non vengono passati argomenti durante il richiamo della funzione:

function saluta($nome = “Utente“) {
     echoCiao, ” . $nome;
}

saluta(); // Output: Ciao, Utente
saluta(“Marco“); // Output: Ciao, Marco

4. Valore di Ritorno

Una funzione può restituire un valore utilizzando la parola chiave return. Una volta che return viene eseguito, l’esecuzione della funzione termina e il controllo viene restituito al punto in cui la funzione è stata chiamata:

function somma($a, $b) {
     return $a + $b;
}

$risultato = somma(5, 3); // $risultato ora contiene 8

5. Scope delle Variabili

Le variabili definite all’interno di una funzione hanno uno scope locale, il che significa che esistono solo all’interno della funzione. Le variabili globali non sono accessibili direttamente all’interno delle funzioni, a meno che non vengano dichiarate globali:

$numero = 10;

function moltiplica($valore) {
      global $numero; // Rende $numero accessibile nella funzione
      return $valore * $numero;
}

echo moltiplica(2); // Output: 20

7. Funzioni Anonime e Funzioni Lambda

In PHP, è possibile creare funzioni anonime (cioè funzioni senza nome) che possono essere assegnate a variabili o passate come argomenti a altre funzioni. Queste sono anche conosciute come funzioni lambda:

$somma = function($a, $b) {
     return $a + $b;
};

echo $somma(2, 3); // Output: 5

8. Funzioni con Parametri Tipizzati

PHP supporta la tipizzazione dei parametri, il che significa che puoi specificare il tipo di dato che un parametro deve avere. Se viene passato un valore di tipo errato, PHP genererà un errore:

function addNumbers(int $a, int $b): int {
     return $a + $b;
}

echo addNumbers(5, 3); // Output: 8

11. Funzioni Variadiche

A partire da PHP 5.6, puoi utilizzare le funzioni variadiche per passare un numero variabile di argomenti a una funzione utilizzando l’operatore :

function sommaTutti(…$numeri) {
       return array_sum($numeri);
}

echo sommaTutti(1, 2, 3, 4); // Output: 10

12. Closure

Le Closure sono funzioni anonime che possono accedere alle variabili al di fuori del loro scope usando la parola chiave use:

$saluto = “Ciao“;

$funzione = function($nome) use ($saluto) {
      echo $saluto . “, ” . $nome;
};

$funzione(“Marco“); // Output: Ciao, Marco

Le funzioni in PHP sono uno strumento potente che permette di scrivere codice modulare e riutilizzabile, facilitando la manutenzione e l’organizzazione del software.

LINK AI POST PRECEDENTI

IL LINGUAGGIO PHP

LINK AL CODICE SU GITHUB

GITHUB