国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP中的類型約束介紹

2024-05-04 23:35:01
字體:
供稿:網(wǎng)友
這篇文章主要介紹了PHP中的類型約束介紹,PHP的類方法和函數(shù)中可實(shí)現(xiàn)類型約束,但參數(shù)只能指定類、數(shù)組、接口、callable 四種類型,參數(shù)可默認(rèn)為NULL,PHP并不能約束標(biāo)量類型或其它類型,需要的朋友可以參考下
 

PHP的類方法和函數(shù)中可實(shí)現(xiàn)類型約束,但參數(shù)只能指定類、數(shù)組、接口、callable 四種類型,參數(shù)可默認(rèn)為NULL,PHP并不能約束標(biāo)量類型或其它類型。

如下示例:

復(fù)制代碼代碼如下:

<?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();
 
//函數(shù)調(diào)用的參數(shù)與定義的參數(shù)類型不一致時(shí),會(huì)拋出一個(gè)可捕獲的致命錯(cuò)誤。
 
$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();

 

那么對(duì)于標(biāo)量類型如何約束呢?

PECL擴(kuò)展庫中提供了SPL Types擴(kuò)展實(shí)現(xiàn)interger、float、bool、enum、string類型約束。

 

復(fù)制代碼代碼如下:

$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 ;
/*
運(yùn)行結(jié)果:
Value not an integer
94
*/

 

SPL Types會(huì)降低一定的靈活性和性能,實(shí)際項(xiàng)目中三思而行。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 土默特左旗| 遵化市| 遂平县| 西昌市| 广水市| 航空| 北宁市| 明溪县| 钦州市| 庆安县| 理塘县| 许昌市| 苗栗县| 宣威市| 清流县| 定南县| 肇东市| 临湘市| 察哈| 玉环县| 义马市| 长治县| 承德市| 黄大仙区| 三穗县| 马尔康县| 鸡泽县| 浑源县| 安溪县| 新巴尔虎左旗| 乌拉特前旗| 南华县| 镇沅| 郑州市| 杭锦后旗| 贵溪市| 晋江市| 侯马市| 五峰| 嘉善县| 怀安县|