Es ist eine Anforderung, dass eine Variable nur eine bestimmte Spezifikation verwenden (akzeptieren, speichern) kann Datentyp; PHP ist eine „schwach typisierte Sprache“ und unterstützt normalerweise keine Typeinschränkungen. Für eine stark typisierte Sprache sind Typeinschränkungen das „Grundmerkmal“.
In PHP werden Typeinschränkungen nur für formale Parameter von Funktionen (oder Methoden) unterstützt. Die Form ist wie folgt :
function 方法名( [要求使用的类型] $p1, [要求使用的类型] $p2, ......){ //....}
Beschreibung:
Beim Definieren einer Funktion (Methode), eines formalen Parameters, Typbeschränkungen kann verwendet werden oder nicht;
Wenn Typbeschränkungen verwendet werden, müssen die entsprechenden tatsächlichen Parameterdaten vom erforderlichen Typ sein;
Typbeschränkungen die verwendet werden können, sind nur in den folgenden Situationen verfügbar:
Array: Array
Objekt: Verwenden Sie den Namen der Klasse, die übergebenen tatsächlichen Parameter müssen eine Instanz der Klasse sein
Schnittstelle: Verwenden Sie den Namen der Schnittstelle, die übergebenen tatsächlichen Parameter müssen eine Implementierungsinstanz der Klasse sein Schnittstelle
<?php //演示类型约束 interface USB{} //接口 class A{} //类 class B implements USB{} //实现了USB接口的类 function f1($p1, array $p2, A $p3, USB $P4){ echo "<br />没有约束的p1:" . $p1; echo "<br />要求是数组的p2:" ; print_r($p2); echo "<br />要求是类A的对象:"; var_dump($p3); echo "<br />要求是实现实现了USB接口的对象:"; var_dump($P4); } $obj1 = new A(); $obj2 = new B(); $arr = array(); //演示各种形式的函数调用 //f1(1.2, 1, $obj1, $obj2);//报错,第二个参数不是数组类型,Argument 2 passed to f1() must be an array, integer give //f1(1, $arr, $obj1, $obj1);//报错,第四个参数,Argument 4 passed to f1() must implement interface USB, instance of A given f1(1.2, $arr, $obj1, $obj2);//没问题 ?>
Laufergebnis:
没有约束的p1:1.2 要求是数组的p2:Array ( ) 要求是类A的对象:object(A)[1] 要求是实现实现了USB接口的对象:object(B)[2]
Das obige ist der detaillierte Inhalt vonPHP-objektorientierter, detaillierter Beispielcode für Typeinschränkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!