如何在PHP箭头函数中编写多个表达式

问题描述 投票:0回答:3

如何编写具有多行表达式的 PHP 箭头函数?

JavaScript 单行示例:

const dob = (age) => 2021 - age;

PHP 一行代码等效项:

$dob = fn($age) => 2021 - $age;

Javascript 多行示例:

const dob = (age) => {
    if (!age) {
        return null;
    }
    const new_age = 2021 - age; 
    console.log("Your new age is " + new_age);
    return new_age;
}

箭头函数中多行的 PHP 等效项是什么?

php arrow-functions
3个回答
30
投票
PHP 中的

箭头函数 的形式为

fn (argument_list) => expr
。函数体内只能有一个表达式。

您可以毫无问题地将表达式写在多行上:

fn($age) =>
      $age
    ? 2021 - $age
    : null

如果你确实需要多个表达式,那么你可以简单地使用匿名函数。闭包不像箭头函数那样是自动的,但如果你不需要它,它会给出完全相同的结果。

$dob = function ($age) {
    if (!$age) { return null; }
    $new_age = 2021 - ^$age; 
    echo "Your new age is ". $new_age;

    return $new_age;
}


0
投票
您可以使用类似

(expr1) && (expr2)

的内容,例如:

$f = fn () => ($this->comment = $operation->comment) && ($hasChanges = true)
    
© www.soinside.com 2019 - 2024. All rights reserved.