<?php
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
$reflect = new ReflectionFunction("baz");
echo $reflect;
...
?>
问题:这是什么意思:ReflectionFunction $a
?这是否等于:$a = new ReflectionFunction()
?
<?php
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
$reflect = new ReflectionFunction("baz");
echo $reflect;
...
?>
问题:这是什么意思:ReflectionFunction $a
?这是否等于:$a = new ReflectionFunction()
?
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-consumer/ 中定义a.php 在第 3 行