php - 尽管“全局”,php在函数中没有变量
问题描述
我有一个问题,我的 PHP 代码中有一个匿名函数,我必须str_replace
使用两个变量$user_id
和$first_name
. 当我打电话时$user_id
它们$first_name
是空白的,但是如果我在功能之外使用它,它们就可以工作。我使用“全球”。"$database" 有效。
$getTrans = function($lang, $identifier)
{
global $database, $username, $user_id, $first_name;
$mammt = $database->prepare("SELECT * FROM translations WHERE language=? AND code=?");
$mammt->execute([$lang, $identifier]);
$trans = $mammt->fetch(PDO::FETCH_ASSOC)['translation'];
if($trans == NULL){
$mammt->execute(['italian', $identifier]);
$trans = $mammt->fetch(PDO::FETCH_ASSOC)['translation'];
}
return str_replace(['\n', "{MENTION}"], ["\n", "<a href='tg://user?id=$user_id'>$first_name</a>"], $trans);
};
变量 user_id 的声明:
if (isset($update['message']['from_id'])){ $user_id = $update['message']['from_id']; }
如果我做
回声 $user_id;
我得到了 user_id,与 first_name 相同。
解决了这个问题。感谢 RiggsFolly。现在代码是这样的:
$getTrans = function($lang, $identifier) use (&$message, &$username, &$user_id, &$first_name)
解决方案
感谢 RiggsFolly。这是我的问题的解决方案:
$getTrans = function($lang, $identifier) 使用 (&$message, &$username, &$user_id, &$first_name)
推荐阅读
- android - 如何在列表视图项目中添加图像按钮?
- gulp - 使用 gulp-zip 压缩主目录并排除子目录
- knockout.js - 单击不使用 KnockoutJS
- javascript - Spring MVC:需要优雅的解决方案来处理传递到前端的字符串的转义和取消转义
- python - 在上传的 zipfile 中包含 Lambda 的 Python 依赖项或从 S3 存储桶下载?
- wordpress - 第一次点击wordpress链接不起作用
- sql - SQL COUNT DISTINCT 输出不正确
- json - 运行时出现多个 JSON CodingKeys 值问题
- python - 如何在这里获取所有数据的前缀
- javascript - 傀儡师选择链接