最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP中的類(lèi)型約束介紹

 更新時(shí)間:2015年05月11日 11:31:40   投稿:junjie  
這篇文章主要介紹了PHP中的類(lèi)型約束介紹,PHP的類(lèi)方法和函數(shù)中可實(shí)現(xiàn)類(lèi)型約束,但參數(shù)只能指定類(lèi)、數(shù)組、接口、callable 四種類(lèi)型,參數(shù)可默認(rèn)為NULL,PHP并不能約束標(biāo)量類(lèi)型或其它類(lèi)型,需要的朋友可以參考下

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

如下示例:

復(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ù)類(lèi)型不一致時(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)量類(lèi)型如何約束呢?

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

復(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)目中三思而行。

相關(guān)文章

最新評(píng)論

涟水县| 兴义市| 宜兰市| 河南省| 兴业县| 黑龙江省| 卢湾区| 兴文县| 清水河县| 望都县| 垦利县| 堆龙德庆县| 舟曲县| 海盐县| 炎陵县| 佛冈县| 中超| 武汉市| 遂溪县| 翁源县| 雷山县| 股票| 双江| 南通市| 通辽市| 彩票| 伊通| 博湖县| 崇礼县| 巴南区| 名山县| 滕州市| 锡林郭勒盟| 紫阳县| 清远市| 洪泽县| 康定县| 台南县| 乳山市| 墨脱县| 三门县|