Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用PHP匿名函数作为参数,而不将函数分配给变量吗?_Php_Anonymous Function_Php 5.6_Php 7.1 - Fatal编程技术网

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

我可以使用PHP匿名函数作为参数,而不将函数分配给变量吗?,php,anonymous-function,php-5.6,php-7.1,Php,Anonymous Function,Php 5.6,Php 7.1,PHP是否允许在连接期间使用匿名函数作为参数之一 如果是,正确的语法是什么 例如,这里有一个我想开始工作的例子: $final_text = $some_initial_string . function ($array_of_strings) { $out = ''; foreach ($array_of_strings as $this_particular_string) { $out .= $this_particular_string;

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版,首先将匿名函数分配给变量)

简言之

  • 函数必须返回一些可以转换为文本的值
  • 函数定义必须用括号括起来
    (…)
  • 不要忘了在函数定义之后有调用参数
  • 示例:

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

    另外,对于这个特定任务,使用可能更好。

    您希望得到什么?一根绳子?函数?一个“stringfunction”?试过内爆()?对否决票的解释会很好。无论如何,我希望匿名函数返回一个字符串,然后将其连接到其他函数上。Downvote可能是因为您没有询问问题,而是了解解决方案,而没有尝试使用此代码来断言它是否有效。这就是所谓的XY问题。另外,其他注释强调了您正在执行的是
    内爆
    函数。从php7开始,您可以执行以下操作:
    'text'。(函数(){return';})(
    不完全正确。类似于
    $table\u string=$table\u heading\u text。函数($table_row_data){$out='';foreach($table_row_data as$row_data){$out.='.$row_data->field.''.}返回$out;}$表格\底部\文本
    我不确定
    table_string
    或string赋值是否适合您现有的问题……但这完全没有抓住问题的关键:“PHP是否允许在连接过程中使用匿名函数?”。。。简单的答案是否定的。你使用的是什么版本的PHP?我似乎能够在PHP7.1上运行它。6@Dennis--我只是想跟进一下,让您知道我现在运行的是7.0,一切都很好。再次感谢你的坚持!
    echo "BEFORE" . (function ($x){return $x;})(" - MIDDLE - ") . "AFTER";
    echo "BEFORE" . (function (){return " - MIDDLE - ";})() . "AFTER";