1. PHP7函数类型限定介绍
PHP7中引入了函数类型限定,它可以用来限制输入参数和返回值的类型。使用函数类型限定时,如果传递的参数或返回值的类型与限定的类型不匹配,则会抛出一个致命错误。函数类型限定既可以用于标量类型(如int、float、string等),也可以用于类、接口和数组类型。
2. 函数类型限定是否影响性能?
函数类型限定是否会对性能产生影响一直是一个争议话题。因此,进行测试是非常必要的。
2.1 测试方法
我们使用PHP内置函数microtime()测试没有使用函数类型限定和使用函数类型限定两种情况的代码执行时间,具体代码如下:
function test($a){
return $a + 1;
}
function test1(int $a){
return $a + 1;
}
$time_start = microtime(true);
for($i=0; $i<100000; $i++){
test(1);
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "No function type hinting: {$time} ";
$time_start = microtime(true);
for($i=0; $i<100000; $i++){
test1(1);
}
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Using function type hinting: {$time} ";
2.2 测试结果
我们运行了多次测试,每次测试循环100000次。最终得出的结果如下:
No function type hinting: 0.00736403465271
Using function type hinting: 0.00657606124878
我们可以看到,使用函数类型限定的代码比没有使用函数类型限定的代码执行速度快了一些,但差别并不是很大。
3. 小结
根据测试结果,我们可以得出结论:函数类型限定无论是否使用,对PHP的性能影响非常小,可以忽略不计。因此,在编写代码时,可以根据实际情况,根据需要选择是否使用函数类型限定,而不用担心它会影响程序的性能。