Arrow functions in PHP have the form fn (argument_list) => expr
. You can only have a single expression in the body of the function.
You can write the expression over multiple lines without problem:
fn($age) =>
$age
? 2021 - $age
: null
If you really need multiple expressions, then you can simply use anonymous function. The closures aren't automatic as they are with arrow functions, but if you don't need it, it gives exactly the same result.
$dob = function ($age) {
if (!$age) { return null; }
$new_age = 2021 - ^$age;
echo "Your new age is ". $new_age;
return $new_age;
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…