PHP 7 - Aspettative
Expectationssono un miglioramento compatibile con le versioni precedenti della vecchia funzione assert (). L'aspettativa consente asserzioni a costo zero nel codice di produzione e offre la possibilità di generare eccezioni personalizzate quando l'asserzione fallisce. assert () è ora un costrutto di linguaggio, in cui il primo parametro è un'espressione rispetto ad essere una stringa o un booleano da testare.
Direttive di configurazione per assert ()
Direttiva | Valore predefinito | Possibili valori |
---|---|---|
zend.assertions | 1 | 1 - generare ed eseguire codice (modalità di sviluppo) 0 - genera codice ma saltaci intorno in fase di esecuzione -1 - non generare codice (modalità di produzione) |
assert.exception | 0 | 1 - throw, quando l'asserzione fallisce, sia lanciando l'oggetto fornito come eccezione sia lanciandone uno nuovo AssertionError oggetto se l'eccezione non è stata fornita. 0 - usa o genera un Throwable come descritto sopra, ma genera solo un avviso basato su quell'oggetto piuttosto che lanciarlo (compatibile con il comportamento di PHP 5) |
Parametri
assertion- L'asserzione. In PHP 5, deve essere una stringa da valutare o un booleano da testare. In PHP 7, questa può anche essere qualsiasi espressione che restituisce un valore, che verrà eseguito e il risultato viene utilizzato per indicare se l'asserzione è riuscita o meno.
description - Una descrizione facoltativa che verrà inclusa nel messaggio di errore, se l'asserzione non riesce.
exception - In PHP 7, il secondo parametro può essere un file Throwable oggetto invece di una stringa descrittiva, nel qual caso questo è l'oggetto che verrà lanciato, se l'asserzione fallisce e il assert.exception la direttiva di configurazione è abilitata.
Valori restituiti
FALSE se l'affermazione è falsa, TRUE altrimenti.
Esempio
<?php
ini_set('assert.exception', 1);
class CustomError extends AssertionError {}
assert(false, new CustomError('Custom Error Message!'));
?>
Produce il seguente output del browser:
Fatal error: Uncaught CustomError: Custom Error Message! in...