是否可以在变量中打印php变量?

时间:2013-03-03 10:31:02

标签: php

我有一个非常简单的问题。但真的让我发疯了。

我有一个声明说:

  

示例和示例,其中包含一个PHP变量,如$ loggedin_user_name

首先,我想将上面的句子存储在MySQL数据库中,然后在我想打印上述语句时将其取回。似乎他们没有问题 但是当我从数据库中提取数据后尝试打印数据时,它会打印相同的语句。但我想,它必须在上面的语句中打印登录的用户名而不是$loggedin_user_name

那么,是否可以在变量中打印变量?如果是,请提出建议。

6 个答案:

答案 0 :(得分:5)

使用sprintf()

$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;

缺点:

  • 如果您为eval作为参数提供的str变量或字符串/代码被用户填充,则此用法会产生漏洞。
  • 如果评估代码中出现致命错误,则退出整个脚本。

答案 5 :(得分:-1)

最好是结合一个字符串:

$exampleWithUsername = 'example' . $loggedin_user_name;

echo $exampleWithUsername;

'example'是一个硬编码字符串,但你可以给它一个包含字符串$ example的变量,或者直接将$ username连接成$ example。