Einführung in Typbeschränkungen in PHP

怪我咯
Freigeben: 2023-03-13 22:32:02
Original
1384 Leute haben es durchsucht

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(&#39;print_r&#39;, 1);
$test->test_interface(new ArrayObject(array()));
$test->test_class_with_null();
Nach dem Login kopieren

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  =  &#39;Try to cast a string value for fun&#39; ;
} catch ( UnexpectedValueException $uve ) {
    echo  $uve -> getMessage () .  PHP_EOL ;
}
 
echo  $int  .  PHP_EOL ;
/*
运行结果:
Value not an integer
94
*/
Nach dem Login kopieren

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!