PHP中的类型约束介绍
发布时间:2020-12-13 02:36:29 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:PHP中的类型约束介绍》要点: 本文介绍了PHP实战:PHP中的类型约束介绍,希望对您有用。如果有疑问,可以联系我们。 PHP应用 PHP的类办法和函数中可实现类型约束,但参数只能指定类、数组、接口、callable 四种类型,参数可默认为NULL,PHP并不能约
《PHP实战:PHP中的类型约束介绍》要点: 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会降低必定的灵活性和性能,实际项目中三思而行. 编程之家培训学院每天发布《PHP实战:PHP中的类型约束介绍》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |