我有一个非常简单的问题。但真的让我发疯了。
我有一个声明说:
示例和示例,其中包含一个PHP变量,如$ loggedin_user_name
首先,我想将上面的句子存储在MySQL数据库中,然后在我想打印上述语句时将其取回。似乎他们没有问题
但是当我从数据库中提取数据后尝试打印数据时,它会打印相同的语句。但我想,它必须在上面的语句中打印登录的用户名而不是$loggedin_user_name
。
那么,是否可以在变量中打印变量?如果是,请提出建议。
答案 0 :(得分:5)
$str = "example and example with one php variable like %s";
然后从数据库中加载并填写
$out = sprintf($str, $loggedin_user_name);
答案 1 :(得分:0)
如果它总是相同的变量名,我建议使用
echo str_replace($fromDb, '$variableToReplace', $variableToReplace);
答案 2 :(得分:0)
您可以使用preg_match在字符串中查找变量名称,然后将其替换为str_replace。
答案 3 :(得分:0)
$name = "ABC";
$bla = "$name";
echo $bla; //ABC
永远是“ABC”,因为PHP在评估你的变量时会将你的变量评估为$ bla。
您可以使用单引号来避免这种行为(例如$bla='$name'; //$name
)或引用$ -sign(如$bla="\$name"; //$name
)。然后,您可以将您想要的字符串存储到数据库中。
但是你不能(只有在使用eval()时,你必须在良好的PHP代码中执行)构建这种行为,即php在打印全文时的行为。 如在另一个答案中提到的那样,您应该使用printf或sprintf并将$ loggedin_user_name替换为%s(对于“string”。
答案 4 :(得分:-1)
您可以使用eval函数,它可以像您的示例一样使用:
$loggedin_user_name = 'bilal';
$str = "example and example with one php variable like $loggedin_user_name";
eval("\$str = \"$str\";");
echo $str;
缺点:
答案 5 :(得分:-1)
最好是结合一个字符串:
$exampleWithUsername = 'example' . $loggedin_user_name;
echo $exampleWithUsername;
'example'是一个硬编码字符串,但你可以给它一个包含字符串$ example的变量,或者直接将$ username连接成$ example。