<?php
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
$reflect = new ReflectionFunction("baz");
echo $reflect;
...
?>
问题:
这是什么意思:ReflectionFunction $a
?这等于:$a = new ReflectionFunction()
?
答案 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