《PHP实战:PHP中的类型约束介绍》要点:
本文介绍了PHP实战:PHP中的类型约束介绍,希望对您有用。如果有疑问,可以联系我们。
PHP应用PHP的类办法和函数中可实现类型约束,但参数只能指定类、数组、接口、callable 四种类型,参数可默认为NULL,PHP并不能约束标量类型或其它类型.
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();
PHP应用那么对于标量类型如何约束呢?
PHP应用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
*/
PHP应用SPL Types会降低必定的灵活性和性能,实际项目中三思而行.
维易PHP培训学院每天发布《PHP实战:PHP中的类型约束介绍》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/10916.html