In diesem Artikel wird hauptsächlich die Einführung von Typeinschränkungen in PHP vorgestellt. Typeinschränkungen können in PHP-Klassenmethoden und -Funktionen implementiert werden, Parameter können jedoch nur vier Typen angeben: Klasse, Array, Schnittstelle und aufrufbare Parameter. und PHP kann Skalartypen oder andere Typen nicht einschränken. Ich hoffe, dieser Artikel ist für alle hilfreich.
Typeinschränkungen können in PHP-Klassenmethoden und -Funktionen implementiert werden, aber Parameter können nur vier Typen angeben: Klasse, Array, Schnittstelle und aufrufbar. Parameter können standardmäßig auf NULL gesetzt werden. PHP kann keine Skalartypen oder andere Typen einschränken.
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.
$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 */
SPL-Typen verringern bestimmte Flexibilität und Leistung, also denken Sie bei tatsächlichen Projekten zweimal darüber nach.
Verwandte Empfehlungen:
PHP-Datentypen und Beurteilungsvariablentypen
Einige vernachlässigte PHP-Funktionen (organisiert)
Das obige ist der detaillierte Inhalt vonTypbeschränkungen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!