关于php函数中的参数的一个问题

时间:2013-04-22 03:01:34

标签: php

<?php
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
$reflect = new ReflectionFunction("baz");
echo $reflect;
...
?>

问题: 这是什么意思:ReflectionFunction $a?这等于:$a = new ReflectionFunction()

1 个答案:

答案 0 :(得分:1)

function baz(ReflectionFunction $a, ...

是所谓的type hint。这允许PHP解释器在运行时检查参数类型

如果你传递一个类型不是ReflectionFunction的值,那么PHP会抛出一个致命的错误。这非常有助于稳定您的代码并帮助解决由于PHP的松散类型系统而导致和监督的许多编程错误

如果你要传递一个字符串,你可以看到它有效:

baz('my_function');

会给你什么:

  

捕获致命错误:传递给baz()的参数1必须是ReflectionFunction的一个实例,给定字符串,在第5行的/tmp/peerindex-api-consumer/a.php中调用,并在/ tmp / peerindex-api中定义第3行的-consumer / a.php