首頁 >後端開發 >php教程 >【php類別與物件】類型約束

【php類別與物件】類型約束

不言
不言原創
2018-04-17 10:09:101382瀏覽

這篇文章介紹的內容是關於【php類別與物件】類型約束 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

類型約束

PHP 5 可以使用型別限制。

函數的參數可以指定必須為:

  • 物件(在函數原型裡面指定類別的名字)

  • 接口

  • 陣列(PHP 5.1 )

  • #callable(PHP 5.4 )

如果使用NULL 作為參數的預設值,那麼在呼叫函數的時候依然可以使用NULL 作為實參。

如果一個類別或介面指定了類型約束,則其所有的子類別或實作也都如此。

型別約束不能用於標量型別如 int 或 string。 Traits 也不允許。

Example #1 类型约束示例

<?php//如下面的类class MyClass
{    /**
     * 测试函数
     * 第一个参数必须为 OtherClass 类的一个对象
     */
    public function test(OtherClass $otherclass) {
        echo $otherclass->var;
    }    /**
     * 另一个测试函数
     * 第一个参数必须为数组 
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}    /**
     * 第一个参数必须为递归类型
     */
    public function test_interface(Traversable $iterator) {
        echo get_class($iterator);
    }    /**
     * 第一个参数必须为回调类型
     */
    public function test_callable(callable $callback, $data) {
        call_user_func($callback, $data);
    }
}// OtherClass 类定义class OtherClass {    public $var = &#39;Hello World&#39;;
}
?>

相關建議:

【php類別與物件】物件複製

【php類別與物件】魔術方法

【php類別與物件】遍歷

#

以上是【php類別與物件】類型約束的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn