尽管“全局”,php仍无法获得函数变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尽管“全局”,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(['
', "{MENTION}"], ["
", "<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']; }
如果我做
echo $ user_id;
我得到user_id,first_name也一样。
修正了。感谢RiggsFolly。现在代码是这样的:
$getTrans = function($lang, $identifier) use (&$message, &$username, &$user_id, &$first_name)
答案
感谢RiggsFolly。这是我的问题的解决方案:
$ getTrans = function($ lang,$ identifier)use(&$ message,&$ username,&$ user_id,&$ first_name)
以上是关于尽管“全局”,php仍无法获得函数变量的主要内容,如果未能解决你的问题,请参考以下文章