In precedenza, questa particolare situazione veniva gestita dal linguaggio attraverso dei Warning che venivano accompagnati da una notifica "Missing argument" indicante la mancanza di uno o più argomenti per il funzionamento dell'espressione; una funzione come quella proposta di seguito è stata concepita per effettuare la somma di due addendi, motivo per il quale richiede il passaggio di due argomenti:

function sum($x, $y)
{
    return $x + $y;
}

Provando a richiamare tale funzione in PHP 5.6 (o con le versioni di PHP 7.x precedenti alla 7.1), si riceveranno i seguenti errori nel caso in cui ad essa vengano passati zero argomenti o un solo argomento:

sum(); 
// Warning: Missing argument 1 for sum(), called.. on .. and defined in..
// Warning: Missing argument 2 for sum(), called.. on .. and defined in..
sum(8);
// Warning: Missing argument 2 for sum(), called.. on .. and defined in..

In PHP 7.1 abbiamo invece l'eccezione ArgumentCountError che rappresenta nello stesso tempo una conversione e un miglioramento del sistema basato sui Warning:

sum(); 
// Fatal error: Uncaught ArgumentCountError: Too few arguments to function sum(), 0 passed in.. and exactly 2 expected in..
sum(8);
// Fatal error: Uncaught ArgumentCountError: Too few arguments to function sum(), 1 passed in.. and exactly 2 expected in..

Invece di un Warning viene quindi proposto un "Fatal error" che spiega la natura dell'eccezione verificatasi in fase di esecuzione; come è possibile notare l'interprete di PHP è quindi in grado di rilevare il numero di argomenti richiesto dalla funzione e di individuarne la differenza con quelli effettivamente passati nel corso della chiamata.

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *