Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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
Javascript PHP执行的函数为函数';s参数_Javascript_Php - Fatal编程技术网

Javascript PHP执行的函数为函数';s参数

Javascript PHP执行的函数为函数';s参数,javascript,php,Javascript,Php,在PHP中,是否可以将已执行的函数作为函数的参数传递,这样函数的结果将被传递,而不是回调函数对象? 不接触作用域函数(无eval或额外的魔术执行) 比方说,我想给这个函数的参数不清楚。因此,在赋予函数之前,必须对此做出决定。 目前,这始终是这样的: $tmp=($something==$bla)?42:7; 我的职能($tmp); 对于这样一个简短的决定来说,问题并不大。但有时有两种以上的可能性。因此,如果需要elseif,或者需要开关盒。 但如果只是把这样的东西放进去会更干净: myFunc

在PHP中,是否可以将已执行的函数作为函数的参数传递,这样函数的结果将被传递,而不是回调函数对象?
不接触作用域函数(无eval或额外的魔术执行)

比方说,我想给这个函数的参数不清楚。因此,在赋予函数之前,必须对此做出决定。
目前,这始终是这样的:

$tmp=($something==$bla)?42:7;
我的职能($tmp);
对于这样一个简短的决定来说,问题并不大。但有时有两种以上的可能性。因此,如果需要elseif,或者需要开关盒。
但如果只是把这样的东西放进去会更干净:

myFunction(function(){
if(…){return 42;}
elseif(…){return 7;}
elseif(…){return 5;}
elseif(…){return 12;}
else{return 1;}
});
因此,无需先将其保存到变量。
仅针对更干净的代码,减少
$tmp
$trash
变量。

这应该是您要寻找的:

匿名函数(也称为闭包)允许创建 没有指定名称的函数。它们是最有用的 回调参数的值,但它们还有许多其他用途

匿名函数是使用闭包类实现的

下面是一个代码示例:

<?php
$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};

$greet('World');
$greet('PHP');
?>

为了完整起见,还有一个代码示例,关于如何将函数名作为参数传递,并在之后调用它:

<?php

function here() {
  print 'here';
}


function dynamo($name) {
 $name();
}

//Will work
dynamo('here');
//Will fail
dynamo('not_here');

因此,理解了(谢谢),我发现可以直接执行函数,方法是用括号括起来,然后是参数括号,参数括号将是空的或不空的,这取决于是否要将一些变量从主上下文中赋予较低级别的函数

在以下所有示例中,
var\u dump
的输出为
42

没有可变参数的示例
//以后应该调用的函数
函数myFunction($test){
var_dump($测试);
}
//以已执行函数作为参数的函数调用
myFunction((函数(){
返回42;
})());
具有可变参数的示例
$someVar=42;
函数myFunction($test){
var_dump($测试);
}
myFunction((函数($tmp){
返回$tmp;
})($someVar));
或者使用
语句

$someVar=42;
函数myFunction($test){
var_dump($测试);
}
myFunction((function()用法($someVar){
返回$someVar;
})());

“控制台中的输出将是42”-不,如果有那么复杂的东西,它不会是一个命名函数吗?PHP有完全相同的语法。在某个时候,您必须主动调用该函数。在将其传递给另一个函数之前(实际上只传递返回值),或者在另一个函数内部。您没有真正显示匿名函数。你仍然给他们起了名字。第一个例子给一个变量分配了一个函数,是的。但我认为这是我在php文档中找到的最容易阅读的示例。这里有几个例子是完全匿名的函数,以防有人感兴趣。