php - if 语句的函数包装器
问题描述
我处于需要进行大量登录代码的情况。有一个函数包装器,它调用所需的函数并在此过程中记录相关数据。但我感兴趣的一件事是 if 语句的包装。或者允许我在一个地方而不是几十个地方设置语句结果和其他杂项数据的日志记录。
沿途的东西
$result = iff([isset($param1) && $param2 == 1]);
function iff($params) {
if($params)
$res = true;
else
$res = false;
$log->save($miscData, $res);
return $res;
}
或者其他可以让我在一个地方设置某种搜索的东西。寻找一些想法。
解决方案
也许您正在寻找func_get_args方法。
http://php.net/manual/en/function.func-get-args.php
所以你的函数(和示例执行)看起来像这样:
$result = iff(isset($param1), $param2 == 1);
function iff($params) {
$numargs = func_num_args();
$arg_list = func_get_args();
$res = true;
for ($i = 0; $i < $numargs; $i++) {
if ($arg_list[$i] === false) {
$res = false;
break;
}
}
$log->save($miscData, $res);
return $res;
}
请注意,使用此方法可以将任意数量的参数传递给函数,每个参数都是一个布尔值。
推荐阅读
- node.js - 应该如何为具有不同字段的几个猫鼬模型创建模式?
- php - 在 foreach 循环中为 WP 标签回显 ACF 颜色选择器值
- typescript - 当有多个泛型时,从调用站点的值推断函数 arg 中的类型失败
- mysql - 获取最近7天有交易的用户,30天内只有一笔交易
- bigbluebutton - BigBlueButton 2-3-dev html5client 显示“404 未找到”
- javascript - 如何在 React 中返回 Axios Post 的响应?
- javascript - 当我对子组件(如搜索栏)进行更改时,如何避免在 App 级别重新渲染?
- python - 我的部分代码已灰显
- openssl - 尝试使用 Openssl 验证 CSR 失败
- python - 在请求 lockf 独占锁时收到通知