不能使用带有 return void 类型提示的箭头函数
Can not use an arrow function with return void type hinting
在 php 7.4 中使用带有 return 类型提示 void 的箭头函数会导致 php 致命错误。我想,我错过了一些东西。你能帮帮我吗
示例 1:
<?php
function returnvoid(): void {
echo 'I am here, but do not return anything aka void';
}
$arrow_function = fn(): void => returnvoid();
$arrow_function();
结果
PHP Fatal error: A void function must not return a value in [my_filesystem]/.config/JetBrains/PhpStorm2020.1/scratches/scratch_3.php on line 7
还有示例 2:
<?php
$f = fn(): void => 1;
抛出相同的异常。我明白,示例 2 会抛出异常,因为它是一个隐式的 return。如何使用 void return 类型提示显式调用 method/function?
为什么?我想具体说明 return 类型。 ide 和调试让生活更轻松。
箭头函数中不能return void 吗?我错过了什么吗?这没有记录吗?
一个arrow function是为了使single-expression的语法更简洁closures.It只能有一个表达式,即return
.
它通常用于 array_map
或 array_filter
等函数,因此使用 void
类型的箭头函数是不可能的,也没有任何意义(您已经创建了 returnvoid
函数)。
为了您的目的,您仍然可以使用 anonymous functions
function returnvoid(): void {
echo 'I am here, but do not return anything aka void';
}
$anonymous_function = function() : void {
returnvoid();
};
$anonymous_function();
在 php 7.4 中使用带有 return 类型提示 void 的箭头函数会导致 php 致命错误。我想,我错过了一些东西。你能帮帮我吗
示例 1:
<?php
function returnvoid(): void {
echo 'I am here, but do not return anything aka void';
}
$arrow_function = fn(): void => returnvoid();
$arrow_function();
结果
PHP Fatal error: A void function must not return a value in [my_filesystem]/.config/JetBrains/PhpStorm2020.1/scratches/scratch_3.php on line 7
还有示例 2:
<?php
$f = fn(): void => 1;
抛出相同的异常。我明白,示例 2 会抛出异常,因为它是一个隐式的 return。如何使用 void return 类型提示显式调用 method/function?
为什么?我想具体说明 return 类型。 ide 和调试让生活更轻松。
箭头函数中不能return void 吗?我错过了什么吗?这没有记录吗?
一个arrow function是为了使single-expression的语法更简洁closures.It只能有一个表达式,即return
.
它通常用于 array_map
或 array_filter
等函数,因此使用 void
类型的箭头函数是不可能的,也没有任何意义(您已经创建了 returnvoid
函数)。
为了您的目的,您仍然可以使用 anonymous functions
function returnvoid(): void {
echo 'I am here, but do not return anything aka void';
}
$anonymous_function = function() : void {
returnvoid();
};
$anonymous_function();