


Eine kurze Diskussion über die Verwendung von Assertionsfunktionen in PHP
In diesem Artikel erfahren Sie, wie Sie Assertionsfunktionen in PHP verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Ich dachte ursprünglich, dass zusicherungsbezogene Funktionen von Unit-Test-Komponenten wie PHPUnit bereitgestellt werden. Nachdem ich das Handbuch gelesen hatte, entdeckte ich, dass die Assertionsfunktion „assertion()“ eine Funktion ist, die mit PHP selbst geliefert wird. Mit anderen Worten: Wenn wir einfache Tests im Code durchführen, müssen wir nicht die gesamte Komponententestkomponente vollständig einführen.
assert()-Assertionsfunktion
assert(1==1); assert(1==2); // assert.exception = 0 时,Warning: assert(): assert(1 == 2) // assert.exception = 1 时,Fatal error: Uncaught AssertionError: 验证不通过
Offensichtlich kann der zweite Teil des Codes die Assertionsüberprüfung nicht bestehen. Zu diesem Zeitpunkt gibt PHP eine Warnung oder einen Ausnahmefehler zurück. Warum gibt es zwei mögliche Fehlerformen? Wenn wir „assertion.Exception“ in php.ini auf „off“ oder „0“ setzen, d. h. wenn wir die Funktion dieses Parameters deaktivieren, gibt das Programm immer noch eine Warnung in Form von PHP5 zurück, genau wie der Kommentar im obigen Code. Gleichzeitig können Ausnahmen nicht durch try...catch abgefangen werden. Dieser Parameter steuert tatsächlich, ob ein authentisches Ausnahmeobjekt ausgelöst wird. Wenn Sie diesen Parameter als Standard beibehalten, also auf „on“ oder „1“ setzen, wird direkt eine Ausnahme ausgelöst und das Programm beendet.
Wie aus dem obigen Code ersichtlich ist, ist der erste Parameter der Behauptung ein Ausdruck und erfordert einen Ausdruck, der ein Objekt vom Typ Bool zurückgibt. Was ist, wenn wir eine Zeichenfolge oder eine Zahl übergeben?
// 设置 assert.exception = 0 进行多条测试 assert(" "); // Deprecated: assert(): Calling assert() with a string argument is deprecated // Warning: assert(): Assertion " " failed assert("1"); // Deprecated: assert(): Calling assert() with a string argument is deprecated assert(0); // Warning: assert(): assert(0) failed assert(1); assert("1==2"); // Deprecated: assert(): Calling assert() with a string argument is deprecated // Warning: assert(): Assertion "1==2" failed
Natürlich unterliegt der Ausdruck des ersten Parameters einer Typumwandlung, aber der Zeichenfolgentyp weist eine veraltete Erinnerung auf, die darauf hinweist, dass der Ausdruckstyp des an die Funktion „asset()“ übergebenen Zeichenfolgentyps veraltet ist. Die aktuelle Testversion ist 7.3. In Zukunft können Fehler oder Ausnahmen, die den Vorgang abbrechen, direkt gemeldet werden. Das Hauptproblem besteht darin, dass, wenn die übergebene Zeichenfolge selbst auch ein Ausdruck ist, die Beurteilung auf dem Inhalt dieses Ausdrucks basiert, was wie beim letzten Codeabschnitt leicht zu Mehrdeutigkeiten führen kann. Natürlich wird die veraltete Verwendungsmethode immer noch nicht empfohlen. Hier handelt es sich lediglich um ein Verständnis.
Als nächstes werfen wir einen Blick auf die anderen Parameter der Funktion „asser()“. Der zweite Parameter ist von zwei Typen: entweder eine Zeichenfolge, die zum Definieren von Fehlerinformationen verwendet wird, oder eine Ausnahmeklasse, die zum Auslösen einer Ausnahme verwendet wird.
assert(1==1, "验证不通过"); assert(1==2, "验证不通过"); // Warning: assert(): 验证不通过 failed
Wenn eine Zeichenfolge direkt angegeben wird, wird der Inhalt der von uns definierten Fehlermeldung in der Warnmeldung angezeigt. Das ist sehr leicht zu verstehen.
// 注意 assert.exception 设置不同的区别 assert(1==1, new Exception("验证不通过")); assert(1==2, new Exception("验证不通过")); // assert.exception = 1 时,Fatal error: Uncaught Exception: 验证不通过 // assert.exception = 0 时,Warning: assert(): Exception: 验证不通过
Natürlich können wir auch eine Ausnahmeklasse angeben, damit die Behauptung eine Ausnahme auslöst. Standardmäßig wird durch das Auslösen dieser Ausnahme die Ausführung des Programms abgebrochen. Das ist ein normaler Ausnahmeprozess. Wir können try...catch verwenden, um Ausnahmen abzufangen.
try{ assert(1==2, new Exception("验证不通过")); }catch(Exception $e){ echo "验证失败!:", $e->getMessage(), PHP_EOL; } // 验证失败!:验证不通过
Es gibt einen weiteren Parameter, der die Gesamtoperation von Assertions beeinflusst, und das ist der Parameter zend.assertions in php.ini. Es enthält drei Werte:
- 1, generiert und führt Code aus, wird im Allgemeinen in Testumgebungen verwendet
- 0, generiert Code, wird ihn aber zur Laufzeit passieren
- -1, generiert keinen Code, wird im Allgemeinen in formalen Umgebungen verwendet
Sie können diesen Parameter selbst konfigurieren und testen. Der Standardwert in php.ini ist 1, was bedeutet, dass die Funktion Assert() normal ausgeführt wird.
assert_options() und die entsprechende Parameterkonfiguration in php.ini
Die Assertionsfunktion in PHP stellt uns auch eine Assert_options()-Funktion zur Verfügung, mit der wir einige Parameter im Zusammenhang mit der Assertionskonfiguration bequem festlegen und abrufen können. Zu den Assertionsflags, die es setzen kann, gehören:
|. -:- assert.active |
ASSERT_WARNING |. Assert.warning |. Generieren Sie eine PHP-Warnung für jede fehlgeschlagene Behauptung
ASSERT_BAIL |. Assert.bail |. Ausführung bei Assertionsfehler abbrechen
ASSERT_QUIET_EVAL |. Assert.quiet_eval |. Deaktivieren Sie error_reporting, wenn Assertionsausdrücke ausgewertet werden
ASSERT_CALLBACK |. affirm.callback | (NULL) |. Rufen Sie die Callback-Funktion auf, wenn die Behauptung fehlschlägt. Die Bedeutung dieser Parameter ist sehr einfach zu verstehen. Sie können sie selbst testen. Werfen wir einen Blick auf die Funktion des letzten ASSERT_CALLBACK. Tatsächlich ist die Beschreibung auch sehr klar: Wenn die Behauptung fehlschlägt, wird die durch diese Option definierte Rückruffunktion eingegeben.
assert_options(ASSERT_ACTIVE, 1); assert_options(ASSERT_WARNING, 1); assert_options(ASSERT_BAIL, 1); assert_options(ASSERT_CALLBACK, function($params){ echo "====faild====", PHP_EOL; var_dump($params); echo "====faild====", PHP_EOL; }); assert(1!=1); // ====faild==== // string(105) ".../source/一起学习PHP中断言函数的使用.php" // ====faild====
Wenn die Behauptung fehlschlägt, geben wir die Rückruffunktion ein und die Rückruffunktion gibt einfach den Inhalt der an die Rückruffunktion übergebenen Parameter aus. Es ist ersichtlich, dass die in dieser Rückruffunktion übergebenen Dateiinformationen die Behauptung nicht übergeben können.
ZusammenfassungDas Erlernen und Beherrschen der Verwendung und Konfiguration von Assertionsfunktionen kann den Grundstein für das Erlernen von PHPUnit-Unit-Tests in der Zukunft legen. Natürlich gibt es nicht viele Dinge mit dieser Fähigkeit, also denken Sie daran! 测试代码:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E4%B8%80%E8%B5%B7%E5%AD%A6%E4%B9%A0PHP%E4%B8%AD%E6%96%AD%E8%A8%80%E5%87%BD%E6%95%B0%E7%9A%84%E4%BD%BF%E7%94%A8.php
Nach dem Login kopierenEmpfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über die Verwendung von Assertionsfunktionen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202005/source/%E4%B8%80%E8%B5%B7%E5%AD%A6%E4%B9%A0PHP%E4%B8%AD%E6%96%AD%E8%A8%80%E5%87%BD%E6%95%B0%E7%9A%84%E4%BD%BF%E7%94%A8.php

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
