assert
  (PHP 4, PHP 5, PHP 7, PHP 8)
assert — Überprüft eine Assertion (Zusicherung)
  
 
  Beschreibung
  
  
  
   Zusicherungen können zur Unterstützung der Fehlersuche verwendet werden.
   So können sie z. B. für Plausibilitätsprüfungen für Vorbedingungen verwendet
   werden, die immer true sein sollten, und die andernfalls auf
   Programmierfehler hinweisen.
   Ein weiterer Anwendungsfall ist, sicherzustellen, dass bestimmte Merkmale
   wie Funktionen von Erweiterungen oder bestimmte Grenzwerte und Eigenschaften
   des Systems vorhanden sind.
  
  
   Da Zusicherungen so konfiguriert werden können, dass sie deaktiviert
   werden, sollten sie nicht für normale
   Laufzeitoperationen wie die Überprüfung von Eingabeparametern verwendet
   werden. Als Faustregel gilt, dass sich der Code auch bei deaktivierter
   Zusicherungsüberprüfung so verhalten sollte wie erwartet.
  
  
   assert() prüft, ob die in
   assertion angegebene Annahme zutrifft. Wenn dies
   nicht der Fall ist und das Ergebnis somit false ist, werden die
   entsprechenden Maßnahmen ergriffen, je nachdem wie
   assert() konfiguriert wurde.
  
  
   Das Verhalten von assert() wird durch die folgenden
   INI-Einstellungen bestimmt:
   
    Konfigurationsoptionen für assert
    
     
      
       | Name | Standard | Beschreibung | Changelog | 
     
     
      
       | zend.assertions | 1 | 
         
          1: erzeugt Code und führt ihn aus
          (Entwicklungsmodus).
          
          0: erzeugt Code, aber führt ihn zur Laufzeit
          nicht aus.
          -1: erzeugt keinen Code (Produktionsmodus). |  | 
      
       | assert.active | true | Wenn false, prüft assert() die Annahme nicht und
        gibt automatischtruezurück. | Seit PHP 8.3.0 veraltet. | 
      
       | assert.callback | null | 
         Eine benutzerdefinierte Funktion, die aufgerufen wird, wenn eine
         Zusicherung fehlschlägt. Sie sollte die folgende Signatur haben:
          | 
         Vor PHP 8.0.0 musste die Signatur des Callbacks wie folgt lauten:
         Seit PHP 8.3.0 veraltet. | 
      
       | assert.exception | true | Wenn true, wird ein AssertionError ausgelöst,
        wenn die Erwartung nicht erfüllt wird. | Seit PHP 8.3.0 veraltet. | 
      
       | assert.bail | false | Wenn true, wird die Ausführung des PHP-Skripts gestoppt, wenn die
        Erwartung nicht erfüllt wird. | Seit PHP 8.3.0 veraltet. | 
      
       | assert.warning | true | Wenn true, wird eineE_WARNINGausgegeben, wenn
        die Erwartung nicht erfüllt wird. Diese INI-Einstellung hat keine
        Auswirkung, wenn
        assert.exception aktiviert
        ist. | Seit PHP 8.3.0 veraltet. | 
     
    
   
  
  
 
  Parameter-Liste
  
   
    
     - assertion
- 
      
       Dies ist ein beliebiger Ausdruck, der einen Wert zurückgibt, der
       ausgeführt wird und dessen Ergebnis verwendet wird, um anzuzeigen, ob
       die Zusicherung erfolgreich war oder fehlschlug.
       Warnung
       
        Vor PHP 8.0.0 wurde assertion, wenn es vom Typ
        string war, als PHP-Code interpretiert und über
        eval() ausgeführt. Diese Zeichenkette wurde dann
        als drittes Argument an den Callback übergeben. Dieses Verhalten war
        in PHP 7.2.0 MISSBILLIGT, und wurde in PHP 8.0.0
        ENTFERNT.
 
 
- description
- 
      
       Wenn descriptioneine Instanz von
       Throwable ist, wird sie nur ausgelöst, wenn dieassertionausgeführt wird und fehlschlägt.
 Hinweis: 
         
         Seit PHP 8.0.0 wird dies durchgeführt bevor ein
         möglicherweise definierter Zusicherungs-Callback aufgerufen wird.
         
 Hinweis: 
         
         Seit PHP 8.0.0 wird das Objekt unabhängig von der Einstellung von
         assert.exception
         ausgelöst.
         
 Hinweis: 
         
         Seit PHP 8.0.0 hat die Einstellung von
         assert.bail in diesem Fall
         keine Wirkung mehr.
         
 
       Wenn descriptionvom Typ String ist, wird
       diese Nachricht verwendet, wenn eine Exception oder eine Warnung
       ausgegeben wird. Eine optionale Beschreibung, die in die Fehlermeldung
       aufgenommen wird, wenn dieassertionfehlschlägt.
 
       descriptionkann weggelassen werden.
       
       Die Standardbeschreibung entspricht dem Quellcode für den Aufruf von
       assert() und wird zur Kompilierzeit erstellt.
 
 
 
  Rückgabewerte
  
   Wenn mindestens eine der folgenden Bedingungen erfüllt ist, gibt
   assert() immer true zurück:
  
  
   - zend.assertions=0
- zend.assertions=-1
- assert.active=0
- assert.exception=1
- assert.bail=1
- 
    An descriptionwird ein benutzerdefiniertes
    Exception-Objekt übergeben.
   Wenn keine der Bedingungen wahr ist, gibt assert()
   true zurück, sofern assertion wahr ist, ansonsten
   false.
  
  
 
 
  Beispiele
  
   Beispiel #1 assert()-Beispiel
   
<?php
assert(1 > 2);
echo 'Hi!';
    
   
    Falls Zusicherungen aktiviert sind
    (zend.assertions=1),
    gibt das obige Beispiel folgendes aus:
   
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
 
   
    Falls Zusicherungen deaktiviert sind (zend.assertions=0
    oder zend.assertions=-1), gibt das obige Beispiel
    folgendes aus:
   
 
  
   Beispiel #2 Verwenden einer benutzerdefinierten Meldung
   
<?php
assert(1 > 2, "Es wurde erwartet, dass eins größer ist als zwei");
echo 'Hi!';
    
   
    Falls Zusicherungen aktiviert sind, gibt das obige Beispiel folgendes aus:
   
Fatal error: Uncaught AssertionError: Es wurde erwartet, dass eins größer ist als zwei in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'Es wurde erwartet,...')
#1 {main}
  thrown in example.php on line 2
 
   
    Falls Zusicherungen deaktiviert sind, gibt das obige Beispiel folgendes aus:
   
 
  
   Beispiel #3 Verwenden einer benutzerdefinierten Exception-Klasse
   
<?php
class ArithmeticAssertionError extends AssertionError {}
assert(1 > 2, new ArithmeticAssertionError("Es wurde erwartet, dass eins größer ist als zwei"));
echo 'Hi!';
    
   
    Falls Zusicherungen aktiviert sind, gibt das obige Beispiel folgendes aus:
   
Fatal error: Uncaught ArithmeticAssertionError: Es wurde erwartet, dass eins größer ist als zwei in example.php:4
Stack trace:
#0 {main}
  thrown in example.php on line 4
 
   
    Falls Zusicherungen deaktiviert sind, gibt das obige Beispiel folgendes aus: