PHP中的类型约束介绍
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-26 15:16:51 浏览: 评论:0
这篇文章主要介绍了PHP中的类型约束介绍,PHP的类方法和函数中可实现类型约束,但参数只能指定类、数组、接口、callable 四种类型,参数可默认为NULL,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会降低一定的灵活性和性能,实际项目中三思而行。
Tags: PHP类型约束
- 上一篇:PHP设计模式之适配器模式代码实例
- 下一篇:php通过curl模拟登陆DZ论坛
相关文章
- ·PHP类型约束的详细介绍(附代码)(2020-02-11)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)