我有一个非常简单的问题。但是真的让我发疯。是否可以通过变量打印php变量?
我有一份声明中说:
例子,例如有一个像$ loggedin_user_name
首先的PHP变量,我想存储在MySQL数据库上面的句子,然后把它只要我想打印上面的语句就回来。看来他们没有问题。
但是,当我试图从数据库中提取后打印数据时,它正在打印相同的语句。但我想,它必须在上面的语句中打印登录的用户名而不是$loggedin_user_name
。
那么,是否可以在变量内打印变量?如果是,请建议一种方法。
我有一个非常简单的问题。但是真的让我发疯。是否可以通过变量打印php变量?
我有一份声明中说:
例子,例如有一个像$ loggedin_user_name
首先的PHP变量,我想存储在MySQL数据库上面的句子,然后把它只要我想打印上面的语句就回来。看来他们没有问题。
但是,当我试图从数据库中提取后打印数据时,它正在打印相同的语句。但我想,它必须在上面的语句中打印登录的用户名而不是$loggedin_user_name
。
那么,是否可以在变量内打印变量?如果是,请建议一种方法。
使用
$str = "example and example with one php variable like %s";
然后从数据库加载它,并填写
$out = sprintf($str, $loggedin_user_name);
如果它始终是相同的变量名,我会建议使用
echo str_replace($fromDb, '$variableToReplace', $variableToReplace);
您可以使用eval函数,它可以像你的例子一样使用:
$loggedin_user_name = 'bilal';
$str = "example and example with one php variable like $loggedin_user_name";
eval("\$str = \"$str\";");
echo $str;
缺点:
-1没有提及缺点和**鼓励使用'eval' ** – 2013-03-03 10:43:14
你是对的。因为我没有写错误,所以我鼓励使用eval。但我试图说“看看有这样一种方式”。另外,我不认为如果代码是由proggrammer(我从他这样的解释中理解的)创建的,它会导致问题。 – Bilal 2013-03-03 15:37:11
您可以使用preg_match在字符串中找到变量名称,然后用str_replace替换它。
最好将concatinate字符串:
$exampleWithUsername = 'example' . $loggedin_user_name;
echo $exampleWithUsername;
“示例”是一个硬编码字符串,但你可以给它一个包含字符串变量$例如,或者直接concatinate $用户名到$例子。
$name = "ABC";
$bla = "$name";
echo $bla; //ABC
永远是“ABC”,因为PHP在评估$ bla时正在评估您的变量。
您可以使用单引号来避免该行为(如$bla='$name'; //$name
),或者引用$ -sign(如$bla="\$name"; //$name
)。然后你可以将你想要的字符串存储到你的数据库中。
但是,你不能(只有当使用eval(),至少你不能在良好的PHP代码中)建立这种行为,即PHP打印全文时的行为。 像在另一个答案中提到的,你应该使用printf或sprintf并用%s替换$ loggedin_user_name(对于“字符串”)。
你可以举一个简单的编码的例子吗? – samayo 2013-03-03 10:31:54
是的!当然,让我再次编辑它 – 2013-03-03 10:32:49