【发布时间】:2021-02-17 17:25:50
【问题描述】:
function foo(int $one, int $two, int &$output): void
{
$output = $one + $two;
}
foo(1, 2, $result);
var_dump($result);
产生这个错误:
PHP 致命错误:未捕获的 TypeError:传递给 foo() 的参数 3 必须是 int 类型,给定 null
如果不将$result 预先设置为预期类型的值等,有什么方法可以避免这种情况?
【问题讨论】:
-
为什么要为
$output设置类型提示? -
首先,我习惯于对所有内容进行完全类型提示,因为我使用了 Psalm 和 PHPStan 等静态分析工具。他们会抱怨缺少类型提示,除非我通过注解/cmets 在异常中编码。
标签: php pass-by-reference type-hinting