Funzioni PHP
Il vero potere di PHP deriva dalle sue funzioni.
PHP ha più di 1000 funzioni integrate e inoltre puoi creare le tue funzioni personalizzate.
Funzioni integrate in PHP
PHP ha oltre 1000 funzioni integrate che possono essere chiamate direttamente, dall'interno di uno script, per eseguire un'attività specifica.
Si prega di controllare il nostro riferimento PHP per una panoramica completa delle funzioni integrate di PHP .
Funzioni definite dall'utente PHP
Oltre alle funzioni PHP integrate, è possibile creare le proprie funzioni.
- Una funzione è un blocco di istruzioni che può essere utilizzato ripetutamente in un programma.
- Una funzione non verrà eseguita automaticamente al caricamento di una pagina.
- Una funzione verrà eseguita da una chiamata alla funzione.
Crea una funzione definita dall'utente in PHP
Una dichiarazione di funzione definita dall'utente inizia con la parola function
:
Sintassi
function functionName()
{
code to be executed;
}
Nota: il nome di una funzione deve iniziare con una lettera o un trattino basso. I nomi delle funzioni NON fanno distinzione tra maiuscole e minuscole.
Suggerimento: assegna alla funzione un nome che rifletta ciò che fa la funzione!
Nell'esempio seguente, creiamo una funzione denominata "writeMsg()". La parentesi graffa di apertura ( { ) indica l'inizio del codice della funzione e la parentesi graffa di chiusura ( } ) indica la fine della funzione. La funzione emette "Hello world!". Per chiamare la funzione, scrivi il suo nome seguito da parentesi ():
Esempio
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Argomenti della funzione PHP
Le informazioni possono essere passate alle funzioni tramite argomenti. Un argomento è proprio come una variabile.
Gli argomenti sono specificati dopo il nome della funzione, tra parentesi. Puoi aggiungere tutti gli argomenti che vuoi, separandoli semplicemente con una virgola.
L'esempio seguente ha una funzione con un argomento ($fname). Quando viene chiamata la funzione familyName(), si passa anche un nome (ad es. Jani), e il nome viene utilizzato all'interno della funzione, che restituisce diversi nomi diversi, ma un cognome uguale:
Esempio
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
L'esempio seguente ha una funzione con due argomenti ($fname e $year):
Esempio
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
PHP è un linguaggio liberamente tipizzato
Nell'esempio sopra, si noti che non dovevamo dire a PHP quale tipo di dati è la variabile.
PHP associa automaticamente un tipo di dati alla variabile, a seconda del suo valore. Poiché i tipi di dati non sono impostati in senso stretto, puoi fare cose come aggiungere una stringa a un numero intero senza causare un errore.
In PHP 7 sono state aggiunte le dichiarazioni di tipo. Questo ci dà un'opzione per specificare il tipo di dati previsto quando si dichiara una funzione e, aggiungendo la strict
dichiarazione, genererà un "Errore irreversibile" se il tipo di dati non corrisponde.
Nell'esempio seguente proviamo a inviare sia un numero che una stringa alla funzione senza utilizzare strict
:
Esempio
<?php
function addNumbers(int $a, int $b) {
return $a
+ $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>
Per specificare strict
dobbiamo impostare declare(strict_types=1);
. Deve trovarsi sulla prima riga del file PHP.
Nell'esempio seguente proviamo a inviare sia un numero che una stringa alla funzione, ma qui abbiamo aggiunto la strict
dichiarazione:
Esempio
<?php declare(strict_types=1); // strict requirement
function
addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>
La strict
dichiarazione obbliga le cose ad essere usate nel modo previsto.
Valore predefinito dell'argomento PHP
L'esempio seguente mostra come utilizzare un parametro predefinito. Se chiamiamo la funzione setHeight() senza argomenti, prende il valore predefinito come argomento:
Esempio
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
Funzioni PHP - Restituzione di valori
Per consentire a una funzione di restituire un valore, utilizzare l' return
istruzione:
Esempio
<?php declare(strict_types=1); // strict requirement
function sum(int $x,
int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
Dichiarazioni del tipo di ritorno PHP
PHP 7 supporta anche le dichiarazioni di tipo per l' return
istruzione. Come con la dichiarazione di tipo per gli argomenti di funzione, abilitando il requisito rigoroso, genererà un "Errore irreversibile" su una mancata corrispondenza del tipo.
Per dichiarare un tipo per la funzione return, aggiungere i due punti (
:
) e il tipo subito prima della {
parentesi graffa ( ) di apertura quando si dichiara la funzione.
Nell'esempio seguente specifichiamo il tipo di ritorno per la funzione:
Esempio
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
Puoi specificare un tipo restituito diverso rispetto ai tipi di argomento, ma assicurati che il tipo restituito sia corretto:
Esempio
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
Passare argomenti per riferimento
In PHP, gli argomenti vengono generalmente passati per valore, il che significa che una copia del valore viene utilizzata nella funzione e la variabile che è stata passata alla funzione non può essere modificata.
Quando un argomento di funzione viene passato per riferimento, le modifiche all'argomento cambiano anche la variabile che è stata passata. Per trasformare un argomento di funzione in un riferimento, &
viene utilizzato l'operatore:
Esempio
Utilizzare un argomento pass-by-reference per aggiornare una variabile:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>