【发布时间】:2020-08-12 01:50:16
【问题描述】:
我正在尝试在 PHP 中实现几乎类似的东西/闭包属性,这在 JS 中可用。
例如
function createGreeter($who) {
return function(){
function hello() use ($who) {
echo "Hi $who";
}
function bye() use($who){
echo "Bye $who";
}
};
}
我知道我的语法不正确,这就是我想要实现的目标。
到目前为止我所做的是。
function createGreeter() {
$hi = "hi how are you.";
$bye = "bye wish you luck.";
return function($operation) use ($hi, $bye){
if ($operation == "a") return $hi;
elseif ($operation == "b") return $bye;
};
}
$op = createGreeter();
echo $op("a"); #prints hi how are you.
echo $op("b"); #prints bye wish you luck.
请看看 PHP 是否允许我们这样做。
【问题讨论】:
-
我的问题只是“为什么?”为什么要使用闭包?
-
return ['hello' => function () use ($who) { ... }, ...]…? -
@B001ᛦ 只是出于好奇,我已经知道 OOPS 可以很容易地做到这一点,但是这一次,我只是想用面向过程的没关系。
标签: php php-closures