Heim  >  Artikel  >  Backend-Entwicklung  >  Typbeschränkungen in PHP

Typbeschränkungen in PHP

*文
*文Original
2017-12-27 10:08:421549Durchsuche

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(&#39;print_r&#39;, 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  =  &#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
*/

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

Hinweis zu PHP-Funktionen

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!

Stellungnahme:
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