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

首頁 > 網站 > 建站經驗 > 正文

PHP中的-類型約束介紹

2019-11-02 15:22:25
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了PHP中的類型約束介紹,PHP的類方法和函數中可實現類型約束,但參數只能指定類、數組、接口、callable 四種類型,參數可默認為NULL,PHP并不能約束標量類型或其它類型,需要的朋友可以參考下

  PHP的類方法和函數中可實現類型約束,但參數只能指定類、數組、接口、callable 四種類型,參數可默認為NULL,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、b

歌名網名[www.la240.com/html2017/1/13/]
ool、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會降低一定的靈活性和性能,實際項目中三思而行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵溪市| 雷波县| 牟定县| 林西县| 嘉荫县| 高邑县| 宁晋县| 名山县| 义乌市| 商河县| 武夷山市| 瓮安县| 铜川市| 阿瓦提县| 万山特区| 遂川县| 哈密市| 佛山市| 侯马市| 宜宾县| 繁峙县| 凌云县| 伊宁县| 昆山市| 龙南县| 巴南区| 滦南县| 中西区| 建瓯市| 嵊泗县| 鄂托克前旗| 梁平县| 济源市| 鹤岗市| 吉木萨尔县| 杭州市| 平果县| 衡阳市| 永靖县| 清水县| 安西县|