我可以使用 PHP 匿名函数作为参数,而不将该函数分配给变量吗?

Can I use PHP anonymous function as an argument, without assigning the function to a variable?

PHP 是否允许在串联期间使用匿名函数作为参数之一?

如果是这样,正确的语法是什么?

例如,这是我想要开始工作的示例:

$final_text = $some_initial_string . function ($array_of_strings)
{
    $out = '';
    foreach ($array_of_strings as $this_particular_string)
    {
        $out .= $this_particular_string;
    }
    return $out;
};

注意:以下预计适用于 PHP 版本 7.x 但不适用于 PHP 版本 5.6(对于 5.6,首先将匿名函数分配给变量)

/*
 * Strings before & after
 */
$table_heading_text = "HEADING";
$table_bottom_text = "BOTTOM";

/*
 * Use the function this way
 */
echo $table_heading_text . (function (array $array_of_strings)
{
    $out = '';
    foreach ($array_of_strings as $this_particular_string)
    {
        $out .= $this_particular_string;
    }
    return $out;
})(array(
    "hi",
    "mom"
)) . $table_bottom_text;

简而言之...

  1. 函数必须return一些可以转换为文本的值
  2. 函数定义必须用括号括起来( ... )
  3. 不要忘记在函数定义之后有调用参数

示例:

echo "BEFORE" . (function ($x){return $x;})(" - MIDDLE - ") . "AFTER";
echo "BEFORE" . (function (){return " - MIDDLE - ";})() . "AFTER";

此外,使用 implode() 可能更适合这项特定任务。