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

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

4

1 回答 1

1
function baz(ReflectionFunction $a, ...

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

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

例如,如果您传递一个字符串,您可以看到它的影响:

baz('my_function');

会给你什么:

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

于 2013-04-22T03:08:15.430 回答