PHP 7 - Attentes

Expectationssont une amélioration rétrocompatible de l'ancienne fonction assert (). L'attente permet des assertions à coût nul dans le code de production et offre la possibilité de lever des exceptions personnalisées lorsque l'assertion échoue. assert () est maintenant une construction de langage, où le premier paramètre est une expression par rapport à une chaîne ou un booléen à tester.

Directives de configuration pour assert ()

Directif Valeur par défaut Valeurs possibles
zend.assertions 1

1 - générer et exécuter du code (mode développement)

0 - générer du code mais en contourner au moment de l'exécution

-1 - ne pas générer de code (mode production)

assert.exception 0

1 - throw, lorsque l'assertion échoue, soit en lançant l'objet fourni comme exception, soit en lançant un nouveau AssertionError objet si l'exception n'a pas été fournie.

0 - utiliser ou générer un Throwable comme décrit ci-dessus, mais ne génère qu'un avertissement basé sur cet objet plutôt que de le lancer (compatible avec le comportement de PHP 5)

Paramètres

  • assertion- L'affirmation. En PHP 5, il doit s'agir d'une chaîne à évaluer ou d'un booléen à tester. En PHP 7, il peut également s'agir de toute expression qui renvoie une valeur, qui sera exécutée et le résultat est utilisé pour indiquer si l'assertion a réussi ou échoué.

  • description - Une description facultative qui sera incluse dans le message d'échec, si l'assertion échoue.

  • exception - En PHP 7, le deuxième paramètre peut être un Throwable objet au lieu d'une chaîne descriptive, auquel cas c'est l'objet qui sera jeté, si l'assertion échoue et si assert.exception la directive de configuration est activée.

Valeurs de retour

FALSE si l'assertion est fausse, TRUE autrement.

Exemple

<?php
   ini_set('assert.exception', 1);

   class CustomError extends AssertionError {}

   assert(false, new CustomError('Custom Error Message!'));
?>

Il produit la sortie de navigateur suivante -

Fatal error: Uncaught CustomError: Custom Error Message! in...