assert
  (PHP 4, PHP 5, PHP 7, PHP 8)
assert — Vérifie une assertion
  
 
 
  Description
  
  
  
   Les assertions peuvent être utilisées pour aider au débogage.
   Un cas d'utilisation pour les assertions est de servir de vérifications de cohérence
   pour des préconditions qui devraient toujours être true, et si elles ne sont pas respectées,
   cela indique des erreurs de programmation.
   Un autre cas d'utilisation est de garantir la présence de certaines fonctionnalités telles que
   des fonctions d'extension ou certaines limites et fonctionnalités du système.
  
  
   Comme les assertions peuvent être configurées pour être éliminées, elles ne doivent
   pas être utilisées pour des opérations normales en cours d'exécution,
   telles que des vérifications des paramètres d'entrée. En règle générale, le code doit se comporter
   comme prévu même si la vérification des assertions est désactivée.
  
  
   assert() vérifiera que l'attente donnée dans
   assertion est satisfaite.
   Si ce n'est pas le cas et donc que le résultat est false, elle prendra l'action appropriée
   en fonction de la configuration de assert().
  
  
   Le comportement de assert() est dicté par les paramètres INI suivants :
   
    Assert Options de configuration
     
     
      
       | Nom | Défaut | Description | Historique | 
     
     
      
       | zend.assertions | 1 | 
         
          1: génère et exécute le code (mode développement)
          
          0: génère le code mais l'évite au moment de l'exécution
          -1: ne génère pas le code (mode production) | 
      
       | assert.active | true | Si false, assert() ne vérifie pas l'attente
        et retourne toujourstrue, sans condition. | Obsolète à partir de PHP 8.3.0. | 
      
       | assert.callback | null | 
         Une fonction définie par l'utilisateur à appeler lorsqu'une assertion échoue.
         Sa signature devrait être :
          | 
         Antérieur à PHP 8.0.0, la signature de la fonction de rappel devrait être :
         Obsolète à partir de PHP 8.3.0. | 
      
       | assert.exception | true | Si true, lancera une AssertionError si l'attente n'est pas respectée. | Obsolète à partir de PHP 8.3.0. | 
      
       | assert.bail | false | Si true, interrompra l'exécution du script PHP si l'attente n'est pas respectée. | Obsolète à partir de PHP 8.3.0. | 
      
       | assert.warning | true | Si true, émettra unE_WARNINGsi l'attente n'est pas respectée.
        Ce paramètre INI est inefficace si
        assert.exception
        est activé. | Obsolète à partir de PHP 8.3.0. | 
     
    
   
  
  
 
  Liste de paramètres
  
   
    
     - assertion
- 
      
       Ceci est une expression quelconque qui retourne une valeur, qui sera exécutée
       et dont le résultat sera utilisé pour indiquer si l'assertion a réussi ou échoué.
       Avertissement
       
        Antérieur à PHP 8.0.0, si assertionétait une
        string, elle était interprétée comme du code PHP et exécutée via
        eval().
        Cette chaîne était transmise à la fonction de rappel en tant que troisième argument.
        Ce comportement était OBSOLÈTE dans PHP 7.2.0,
        et est SUPPRIMÉ à partir de PHP 8.0.0
 
 
- description
- 
      
       Si descriptionest une instance de
       Throwable, elle sera lancée uniquement siassertionest exécutée et échoue.
 Note: 
         
         À partir de PHP 8.0.0, cela est fait avant d'appeler
         la fonction de rappel d'assertion éventuellement défini
         
 Note: 
         
         À partir de PHP 8.0.0, l'objet objet sera lancé indépendamment de la configuration de
         assert.exception.
         
 Note: 
         
         À partir de PHP 8.0.0, le paramètre
         assert.bail
         n'a aucun effet dans ce cas.
         
 
       Si descriptionest une chaîne de caractères, ce message
       sera utilisé si une exception ou un avertissement est émis.
       Une description optionnelle, qui sera incluse dans le message d'échec si
       l'assertionéchoue.
 
       Si descriptionest omis.
       
       Une description par défaut équivalente au code source de l'appel de
       assert() est créée au moment de la compilation.
 
 
 
 
  Valeurs de retour
  
   assert() renverra toujours true si au moins l'une des conditions suivantes est vraie :
  
  
   - zend.assertions=0
- zend.assertions=-1
- assert.active=0
- assert.exception=1
- assert.bail=1
- Un objet d'exception personnalisé est passé à description.
   Si aucune des conditions n'est vraie, assert() renverra true si
   assertion est vrai, et false sinon.
  
  
 
 
 
 
  Exemples
   
    Exemple #1 Exemple d'assert()
    
<?php
assert(1 > 2);
echo 'Hi!';
?>
     
    
     Si les assertions sont activées (zend.assertions=1)
     l'exemple ci-dessus afficherait :
    
Fatal error: Uncaught AssertionError: assert(1 > 2) in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'assert(1 > 2)')
#1 {main}
  thrown in example.php on line 2
 
    
     Si les assertions sont désactivées (zend.assertions=0 ou zend.assertions=-1)
     l'exemple ci-dessus afficherait :
    
 
   
    Exemple #2 Utilisation d'un message personnalisé
    
<?php
assert(1 > 2, "Expected one to be greater than two");
echo 'Hi!';
?>
     
    
     Si les assertions sont activées, l'exemple ci-dessus affichera :
     l'exemple ci-dessus afficherait :
    
Fatal error: Uncaught AssertionError: Expected one to be greater than two in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'Expected one to...')
#1 {main}
  thrown in example.php on line 2
 
    
     Si les assertions sont désactivées, l'exemple ci-dessus affichera :
     l'exemple ci-dessus afficherait :
    
 
    
     Exemple #3 Utilisation d'une classe d'exception personnalisée
     
      <?php
      class ArithmeticAssertionError extends AssertionError {}
      assert(1 > 2, new ArithmeticAssertionError("Expected one to be greater than two"));
      echo 'Hi!';
      
    
     Si les assertions sont activées, l'exemple ci-dessus affichera :
     l'exemple ci-dessus afficherait :
    
Fatal error: Uncaught ArithmeticAssertionError: Expected one to be greater than two in example.php:4
Stack trace:
#0 {main}
  thrown in example.php on line 4
 
     
      Si les assertions sont désactivées, l'exemple ci-dessus affichera :