亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP的類方法和函數中的可實現類型約束

發布時間:2021-09-03 22:44:41 來源:億速云 閱讀:139 作者:chen 欄目:開發技術

這篇文章主要講解了“PHP的類方法和函數中的可實現類型約束”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP的類方法和函數中的可實現類型約束”吧!

PHP的類方法和函數中可實現類型約束,但參數只能指定類、數組、接口、callable 四種類型,參數可默認為NULL,PHP并不能約束標量類型或其它類型。

如下示例:

復制代碼 代碼如下:


<?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('print_r', 1);
$test->test_interface(new ArrayObject(array()));
$test->test_class_with_null();

那么對于標量類型如何約束呢?

PECL擴展庫中提供了SPL Types擴展實現interger、float、bool、enum、string類型約束。

復制代碼 代碼如下:


$int  = new  SplInt ( 94 );
 
try {
     $int  =  'Try to cast a string value for fun' ;
} catch ( UnexpectedValueException $uve ) {
    echo  $uve -> getMessage () .  PHP_EOL ;
}
 
echo  $int  .  PHP_EOL ;
/*
運行結果:
Value not an integer
94
*/

SPL Types會降低一定的靈活性和性能,實際項目中三思而行。

感謝各位的閱讀,以上就是“PHP的類方法和函數中的可實現類型約束”的內容了,經過本文的學習后,相信大家對PHP的類方法和函數中的可實現類型約束這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

广丰县| 岑溪市| 宜宾县| 科技| 闽侯县| 高安市| 海阳市| 赣榆县| 石柱| 吉安县| 永靖县| 齐河县| 离岛区| 武鸣县| 灵武市| 江都市| 枣庄市| 新和县| 福海县| 金湖县| 舒兰市| 鱼台县| 区。| 美姑县| 安龙县| 铜川市| 昌宁县| 枝江市| 宜昌市| 开鲁县| 丘北县| 靖安县| 呼图壁县| 宁明县| 淳安县| 张掖市| 五莲县| 镶黄旗| 东平县| 田东县| 榆中县|