php - 如何将此“create_function”调用转换为匿名函数?
问题描述
我有一些使用的代码,create_function
现在已弃用。评论create_function
说* @deprecated 7.2 Use anonymous functions instead.
这是函数本身:create_function ('$matches', 'return strtoupper("\0");')
这是上下文:
$match[1] = preg_replace_callback('/(?<=^|[\x09\x20\x2D])./',
create_function ('$matches', 'return strtoupper("\0");'), strtolower(trim($match[1])));
我的代码没有运行,因为它已被弃用,所以我想把它变成一个匿名函数。我不完全确定这段代码的作用,所以我真的没有可靠的测试方法,但我认为 create_function 块可以替换为
function($matches) {
return strtoupper($matches);
}
那行得通吗?create_function
这和函数做的事情一样吗?我不确定"\0"
在这种情况下会做什么,所以我希望我能得到一些建议。
解决方案
我在另一个地方找到了类似的问题,并在那里尝试了答案。原来它相当于这个函数:
function($m) {
return strtoupper($m[0]);
}
在这里找到它:已弃用:preg_replace():/e 修饰符已弃用,请使用 preg_replace_callback
感谢@Philipp
推荐阅读
- javascript - 如何在方法中使用的 vue apollo 查询中重新获取/更新结果
- c++ - “使用未声明的标识符‘IntQueue’”,即使它已定义
- python-3.x - 在 Python 中为每个帧中的多个圆圈设置动画
- openvino - 删除推理图
- lua - 为什么在这个 Lua 5.1 __gc 解决方法中将 userdata 对象添加到表中?
- c++11 - 使用 RegNotifyChangeKeyValue 进行注册表监控
- java - 获取用户在休眠环境中所做的所有更改
- firebase - 从 Google App Engine 标准环境使用 Cloud Firestore 需要什么
- react-native - onChange 文本未更新其状态
- c# - 预制件不会为不同的玩家同步