我有以下摘录:
if (empty($last_db_error)) {
echo "OK";
} else {
echo "Error activating subscription.";
echo "{$last_db_error}";
}
问题是"{$last_db_error}"
没有显示,除非我只使用$last_db_error
,没有引号和括号。
我在这里错过了什么吗?上述语法不正确吗?
答案 0 :(得分:6)
在这种情况下,括号和引号无用。
if (empty($last_db_error)) {
echo "OK";
} else {
echo "Error activating subscription.";
echo $last_db_error;
}
完美地完成这项工作。
顺便说一下,即使你可以在PHP中添加$vars
内部引号,也不建议这样做,因为:
使用点运算符连接变量更合适:
if (empty($last_db_error)) {
echo "OK";
} else {
echo "Error activating subscription.\n".
$last_db_error;
}
一旦你有很多文字需要处理,我建议你使用PHP alternative syntax。 E.G:
<?php if (empty($last_db_error)): ?>
OK
<?php else : ?>
Error activating subscription.
<?php echo $last_db_error; ?>
<?php endif; ?>
答案 1 :(得分:2)
$ last_db_error是字符串还是对象?如果它是一个字符串,它应该在使用花括号的双引号之间正确显示(就像你上面发布的那样),所以代码似乎是正确的。
在else语句中放置var_dump($last_db_error)
,看看它输出的内容。
答案 2 :(得分:1)
只需使用
echo $last_db_error;
这里不需要其余的。
答案 3 :(得分:0)
花括号用于评估更复杂的变量名称。如果你想在输出中使用大括号,那么尝试转义它们,如下所示:
if (empty($last_db_error)) {
echo "OK";
} else {
echo "Error activating subscription.";
echo "\{$last_db_error\}";
}
答案 4 :(得分:0)
对我而言,它运作正常:
<?php
$last_db_error = "LLLLLLLLLLLL";
echo "{$last_db_error}";
它告诉我 LLLLLLLLLLLL
答案 5 :(得分:0)
也许您正在使用某种模板系统来解析{ .... }
内的所有内容?
答案 6 :(得分:0)
最简单的方法是:
echo $last_db_error;
对于某些情况,请尝试以下方法:
echo "${last_db_error}";
echo ${'last_db_error'};
Here is a good article regarding php variable names: curly braces