PHP 7 - Erwartungen

Expectationssind eine abwärtskompatible Erweiterung der älteren assert () - Funktion. Die Erwartung ermöglicht kostengünstige Zusicherungen im Produktionscode und bietet die Möglichkeit, benutzerdefinierte Ausnahmen auszulösen, wenn die Zusicherung fehlschlägt. assert () ist jetzt ein Sprachkonstrukt, bei dem der erste Parameter ein Ausdruck ist, verglichen mit einem zu testenden String oder Booleschen Wert.

Konfigurationsanweisungen für assert ()

Richtlinie Standardwert Mögliche Werte
zend.assertions 1

1 - Code generieren und ausführen (Entwicklungsmodus)

0 - Code generieren, aber zur Laufzeit umspringen

-1 - keinen Code generieren (Produktionsmodus)

assert.exception 0

1 - werfen, wenn die Zusicherung fehlschlägt, entweder durch Auslösen des als Ausnahme bereitgestellten Objekts oder durch Auslösen eines neuen AssertionError Objekt, wenn keine Ausnahme angegeben wurde.

0 - Verwenden oder generieren Sie ein Throwable wie oben beschrieben, generiert jedoch nur eine Warnung basierend auf diesem Objekt, anstatt es zu werfen (kompatibel mit PHP 5-Verhalten).

Parameter

  • assertion- Die Behauptung. In PHP 5 muss dies entweder eine zu bewertende Zeichenfolge oder ein zu testender Boolescher Wert sein. In PHP 7 kann dies auch ein beliebiger Ausdruck sein, der einen Wert zurückgibt, der ausgeführt wird und anhand des Ergebnisses angibt, ob die Zusicherung erfolgreich war oder fehlgeschlagen ist.

  • description - Eine optionale Beschreibung, die in die Fehlermeldung aufgenommen wird, wenn die Bestätigung fehlschlägt.

  • exception - In PHP 7 kann der zweite Parameter a sein Throwable Objekt anstelle einer beschreibenden Zeichenfolge. In diesem Fall wird das Objekt ausgelöst, wenn die Zusicherung fehlschlägt und die assert.exception Konfigurationsanweisung ist aktiviert.

Rückgabewerte

FALSE wenn die Behauptung falsch ist, TRUE Andernfalls.

Beispiel

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

   class CustomError extends AssertionError {}

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

Es erzeugt die folgende Browserausgabe -

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