快速的PHP问题

Ari*_*iod 0 php syntax

我有以下摘录:

if (empty($last_db_error)) {
    echo "OK";
} else {
    echo "Error activating subscription.";
    echo "{$last_db_error}";
}
Run Code Online (Sandbox Code Playgroud)

问题是"{$last_db_error}"没有显示,除非我只使用$last_db_error,没有引号和括号.我在这里错过了什么吗?上面的语法不正确吗?

e-s*_*tis 6

在这种情况下,括号和引号是无用的.

if (empty($last_db_error)) {
    echo "OK";
} else {
    echo "Error activating subscription.";
    echo $last_db_error;
}
Run Code Online (Sandbox Code Playgroud)

将完美地完成工作.

顺便说一句,即使你可以$vars在PHP中添加内部引号,也不建议这样做,因为:

  • 它仅适用于双引号,单引号将显示var名称,这会导致错误.
  • 它减慢了字符串解析速度.

使用点运算符连接变量更合适:

if (empty($last_db_error)) {
    echo "OK";
} else {
    echo "Error activating subscription.\n".
          $last_db_error;
}
Run Code Online (Sandbox Code Playgroud)

一旦你有很多文本需要处理,我建议你使用PHP替代语法.EG:

<?php if (empty($last_db_error)): ?>
        OK
<?php else : ?>
        Error activating subscription.
        <?php echo $last_db_error; ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)