Ema*_*sev 94 javascript php function
在JavaScript中,您可以定义立即执行的匿名函数:
(function () { /* do something */ })()
Run Code Online (Sandbox Code Playgroud)
你能在PHP中做那样的事情吗?
Gor*_*don 117
对于PHP7:请参阅Yasuo Ohgaki的回答:(function() {echo 'Hi';})();
对于以前的版本:我能想到的唯一方法是立即执行它们
call_user_func(function() { echo 'executed'; });
Run Code Online (Sandbox Code Playgroud)
Wal*_*ers 25
在PHP 7javascript中也是这样做的
$gen = (function() {
yield 1;
yield 2;
return 3;
})();
foreach ($gen as $val) {
echo $val, PHP_EOL;
}
echo $gen->getReturn(), PHP_EOL;
Run Code Online (Sandbox Code Playgroud)
输出是:
1
2
3
Run Code Online (Sandbox Code Playgroud)
Pac*_*ier 15
当然,你可以使用call_user_func,但还有另一个非常简单的选择:
<?php
// we simply need to write a simple function called run:
function run($f){
$f();
}
// and then we can use it like this:
run(function(){
echo "do something";
});
?>
Run Code Online (Sandbox Code Playgroud)
这对于PHP 7.0或更高版本来说是最简单的.
php -r '(function() {echo 'Hi';})();'
Run Code Online (Sandbox Code Playgroud)
它意味着创建闭包,然后通过跟随"()"将其称为函数.由于统一的变量评估顺序,就像JS一样工作.
小智 6
(new ReflectionFunction(function() {
// body function
}))->invoke();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15501 次 |
| 最近记录: |