Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in Typbeschränkungen in PHP
PHP ist ein schwacher Typ. Sein Merkmal besteht darin, dass für die -Variable kein Typ angegeben werden muss und jeder Typ anschließend in der neuen Syntax von PHP gespeichert werden kann Für bestimmte Anlässe können bestimmte Typen auch grammatikalisch eingeschränkt werden.
Spezifische Anlässe: formale Parametervariablen von Funktionen (Methoden)
Spezifische Typen: Objekttyp (Klassenname), Schnittstelle Typ (Schnittstellenname), Array Typ (Array), Funktionstyp (aufrufbar)
Dieser Artikel stellt hauptsächlich die Einführung von Typeinschränkungen in PHP sowie die Typeinschränkungen vor, die in PHP-Klassenmethoden und implementiert werden können Allerdings können Parameter nur vier Typen angeben: Klasse, Array, Schnittstelle und aufrufbare Parameter können Skalartypen oder andere -Typen nicht einschränken kann sich auf Folgendes beziehen
Das folgende Beispiel:
<?php class Test { public function test_array(array $arr) { print_r($arr); } public function test_class(Test1 $test1 = null) { print_r($test1); } public function test_callable(callable $callback, $data) { call_user_func($callback, $data); } public function test_interface(Traversable $iterator) { print_r(get_class($iterator)); } public function test_class_with_null(Test1 $test1 = NULL) { } } class Test1{} $test = new Test(); //函数调用的参数与定义的参数类型不一致时,会抛出一个可捕获的致命错误。 $test->test_array(array(1)); $test->test_class(new Test1()); $test->test_callable('print_r', 1); $test->test_interface(new ArrayObject(array())); $test->test_class_with_null();
Wie kann man also Skalartypen einschränken?
Die PECL-Erweiterungsbibliothek bietet eine SPL-Typen-Erweiterung zur Implementierung von Integer-, Float-, Bool-, Enum- und String-Typ-Einschränkungen.
Der Code lautet wie folgt:
$int = new SplInt ( 94 ); try { $int = 'Try to cast a string value for fun' ; } catch ( UnexpectedValueException $uve ) { echo $uve -> getMessage () . PHP_EOL ; } echo $int . PHP_EOL ; /* 运行结果: Value not an integer 94 */
PS: SPL-Typen verringern ein gewisses Maß an Flexibilität und Leistung. Denken Sie also zweimal darüber nach, bevor Sie sie verwenden in konkreten Projekten.
Das obige ist der detaillierte Inhalt vonEinführung in Typbeschränkungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!