Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich die Typvalidierung für PHP-Funktionsparameter anpassen?

Wie kann ich die Typvalidierung für PHP-Funktionsparameter anpassen?

王林
Freigeben: 2024-04-10 15:15:02
Original
956 Leute haben es durchsucht

Die Validierung benutzerdefinierter Funktionsparametertypen in PHP kann Parametertypen erzwingen, um sicherzustellen, dass sie den Erwartungen entsprechen, und dadurch die Robustheit des Codes verbessern. Dies kann erreicht werden durch: Typhinweise: Deklarieren Sie die erwarteten Typen von Funktionsparametern. Nicht übereinstimmende Typen lösen eine Ausnahme aus. Typkonvertierung: Verwenden Sie die Funktion oder den Operator settype, um eine Variable in einen angegebenen Typ zu konvertieren. Typinferenz: PHP leitet automatisch Variablentypen ab, beispielsweise beim Zuweisen von Werten. Benutzerdefinierte Validierung: Erstellen Sie eine benutzerdefinierte Validierungsfunktion, um bestimmte Typen (z. B. Datumsangaben) zu validieren. Praktischer Fall: Demonstrieren Sie die Verwendung der benutzerdefinierten Überprüfung mithilfe der Namensüberprüfungsfunktion, um sicherzustellen, dass die Länge und das Format des Namens den Anforderungen entsprechen.

如何自定义 PHP 函数参数的类型验证?

So passen Sie die Typvalidierung von PHP-Funktionsparametern an

In PHP ermöglicht Ihnen die Typvalidierung von Funktionsparametern, die übergebenen Parametertypen zu erzwingen, um sicherzustellen, dass sie den Erwartungen entsprechen. Dies trägt dazu bei, die Robustheit und Zuverlässigkeit Ihres Codes zu verbessern.

Typhinweise

PHP 7.0 hat Typhinweise eingeführt, mit denen Sie die erwarteten Typen von Funktionsparametern deklarieren können. Sie können integrierte Typen verwenden oder eigene Klassen erstellen.

function sum(int $num1, int $num2)
{
    return $num1 + $num2;
}
Nach dem Login kopieren

Wenn die übergebenen Parameter nicht mit dem deklarierten Typ übereinstimmen, löst PHP eine TypeError-Ausnahme aus. TypeError 异常。

类型转换与类型推断

PHP 支持类型转换和类型推断:

  • 类型转换:使用 settype
  • Typkonvertierung und Typinferenz
  • PHP unterstützt Typkonvertierung und Typinferenz:

Typkonvertierung:

Verwenden Sie die Funktion settype oder den Cast-Operator, um die Variable in den angegebenen Typ zu konvertieren.

Typinferenz:

In einigen Fällen kann PHP auf den Typ einer Variablen schließen, beispielsweise beim Zuweisen eines Werts.

// 类型转换
$int = (int) '10';

// 类型推断
$array = [1, 2, 3];
Nach dem Login kopieren

Benutzerdefinierte Typüberprüfung

Für Anforderungen, die durch integrierte Typen nicht erfüllt werden können, können Sie eine benutzerdefinierte Überprüfungsfunktion erstellen.

function validateDate(string $date): bool
{
    if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $date)) {
        return true;
    }

    return false;
}

function formatDate(string $date)
{
    if (!validateDate($date)) {
        throw new InvalidArgumentException('Invalid date format.');
    }

    //...
}
Nach dem Login kopieren

Praktischer Fall

    Die folgende Funktion überprüft den vom Benutzer eingegebenen Namen:
  • function validateName(string $name): void
    {
        if (strlen($name) < 3 || strlen($name) > 25) {
            throw new InvalidArgumentException('Name must be between 3 and 25 characters long.');
        }
    
        if (!preg_match('/^[a-zA-Z ]+$/', $name)) {
            throw new InvalidArgumentException('Name must contain only letters and spaces.');
        }
    }
    Nach dem Login kopieren
    Diese Funktion verwendet eine benutzerdefinierte Validierung, um sicherzustellen, dass der übergebene Name den Anforderungen entspricht.
  • Vorteile
  • Die benutzerdefinierte Typvalidierung bietet die folgenden Vorteile:
  • Gewährleistet die Gültigkeit von Funktionsparametern 🎜🎜 Verbessert die Lesbarkeit und Wartbarkeit des Codes 🎜🎜 Reduziert Fehler durch Erzwingen von Typen 🎜🎜 Erleichtert Unit-Tests und testgetriebene Entwicklung 🎜🎜

    Das obige ist der detaillierte Inhalt vonWie kann ich die Typvalidierung für PHP-Funktionsparameter anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage