php - 如何将函数从 create_function 升级为匿名函数
问题描述
我需要修改该函数,使其不使用 create_function。我想使用匿名功能,但我不知道如何使用它。
function arrayUniqueMerge()
{
$variables = '$_' . implode(',$_', array_keys(func_get_args()));
$func = create_function('$tab', ' list(' . $variables . ') = $tab; return array_unique(array_merge(' . $variables . '));');
return $func(func_get_args());
}
解决方案
我试图理解你的函数的目的,但我的结论是它取决于你构建它的 PHP 版本。
但是,我开始意识到,在 PHP 7 中,您的函数很可能可以重构为以下内容:
function arrayUniqueMerge2(...$args) {
return array_unique(array_merge(...$args));
}
使用示例数据对其进行测试:
print_r(arrayUniqueMerge2(['a', 'b'], ['b', 'c'], ['c', 'd']));
//Array ( [0] => a [1] => b [3] => c [5] => d )
推荐阅读
- javascript - 单击新 div 时禁用其他 div 的样式
- database - MEAN 堆栈:如何在 mongoDB 中存储用户凭据
- salesforce - Salesforce 公式:营业时间公式不适用于营业时间以外的开始时间和营业时间内的结束时间
- python - 仅当子字符串出现一次时,正则表达式匹配
- webpack - Webpack per-entry 模块解析别名规则
- android - 执行通知操作时自动关闭 Android 9 应用上的通知
- java - 如何序列化和反序列化哈希表?
- python - 如何在 Keras 中使用 LSTM 添加 Conv2D 层?
- ag-grid - aggrid:如何在侧边栏过滤器工具面板中设置 ag-virtual-list-item 的行高?
- excel - 我的 If 函数不会被考虑在内