厳密に型指定された言語では、型制約は文法上の要件です。つまり、変数を定義するときに型を指定する必要があり、今後その型のデータのみを保存できます。
php は弱い型です。変数は型を指定する必要がなく、その後は任意の型を格納できるという特徴があります。ただし、PHP の新しい構文では、特定の状況では、特定の型に対して構文制約も実装できます。
is 関数(メソッド)のパラメータに使用しなければならない型を設定できます。制約は、オブジェクト、インターフェイス、配列、関数にのみ適用できます。
<code><span><span>function</span><span>f</span><span>(类名 <span>$p</span>)</span>{</span>} <span>// 要求参数只能使用该类的对象</span><span><span>function</span><span>f</span><span>(接口名 <span>$p</span>)</span>{</span>} <span>// 要求该参数只能使用实现该接口的对象</span><span><span>function</span><span>f</span><span>(arrary <span>$p</span>)</span>{</span>} <span>// 要求该参数只能使用数组</span><span><span>function</span><span>f</span><span>(callable <span>$p</span>)</span>// 要求该参数只能是一个函数(方法),此时称之为回调函数(方法)</span></code>
<code><span><span><?php</span><span><span>class</span><span>A</span>{</span>} <span><span>function</span><span>f</span><span>(A <span>$p</span>)</span>{</span>} <span>$obj</span> = <span>new</span> A(); f(<span>$obj</span>);</span></code>
以上、内容の側面も含めて PHP の型制約について紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。