PHP中的类型约束介绍_PHP教程

WBOY
發布: 2016-07-13 09:54:12
原創
805 人瀏覽過

PHP中的类型约束介绍

   这篇文章主要介绍了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、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会降低一定的灵活性和性能,实际项目中三思而行。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/998360.htmlTechArticlePHP中的类型约束介绍 这篇文章主要介绍了PHP中的类型约束介绍,PHP的类方法和函数中可实现类型约束,但参数只能指定类、数组、接口、cal...
相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!