php - 具有多种功能的PHP处理以返回预期结果
问题描述
在这段代码中,这是一个用于传递多个函数的简单代码,我们应该期望5
在结果中返回,
下面的方法应该接受一个可变数量的函数,并且应该返回一个新函数,该函数接受一个$arg
名为
返回的函数应该pipeline
使用参数调用第一个函数,并使用$arg
第一个函数的结果调用第二个函数
返回的函数应该pipeline
按顺序调用每个函数,遵循相同的模式并从最后一个函数返回值
function pipeline(...$funcs)
{
return function($arg) use ($funcs)
{
return -1;
};
}
$fun = pipeline( function($parameter) { return $parameter * 3; },
function($parameter) { return $parameter + 1; },
function($parameter) { return $parameter / 2; } );
echo $fun(3); # we should see 5 in output
现在返回的这段代码有什么问题-1
解决方案
因为返回的函数返回-1
并且函数永远不会被调用。您应该遍历函数并调用它们来改变$arg
:
function pipeline(...$funcs)
{
return function($arg) use ($funcs)
{
foreach ($funcs as $func) {
$arg = $func($arg);
}
return $arg;
};
}
$fun = pipeline(function($parameter) { return $parameter * 3; },
function($parameter) { return $parameter + 1; },
function($parameter) { return $parameter / 2; });
echo $fun(3); # we should see 5 in output
输出:
5
推荐阅读
- javascript - $.post 不发送变量
- javascript - 在 React 组件中, foo(){} 和 bar = () => {} 有什么区别,我什么时候应该使用哪个?
- json - 需要从 JSON 文件中读取一个变量以在脚本的另一部分作为变量输入
- node.js - 如何:从 2 个 API 获取数据、比较、POST bool
- apache-spark - 驱动程序不会在集群模式下停止
- sql - 创建一个包含更多列的 sql 连接
- c# - 正则表达式在匹配其他条件时查找不包含空格的字符串
- php - PHP没有为测验调用数组
- sql - 状态栏中的 SPID 与 @@SPID 不同
- android - React-Native android 设备看不到控制台远程调试