代码之家  ›  专栏  ›  技术社区  ›  Ariod

快速PHP问题

  •  0
  • Ariod  · 技术社区  · 15 年前

    我有以下摘录:

    if (empty($last_db_error)) {
        echo "OK";
    } else {
        echo "Error activating subscription.";
        echo "{$last_db_error}";
    }
    

    问题是 "{$last_db_error}" 未显示,除非我使用 $last_db_error ,不带引号和括号。 我是不是遗漏了什么?上面的语法不正确吗?

    7 回复  |  直到 15 年前
        1
  •  6
  •   soulmerge    15 年前

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

    if (empty($last_db_error)) {
        echo "OK";
    } else {
        echo "Error activating subscription.";
        echo $last_db_error;
    }
    

    我会把工作做好的。

    顺便说一句,即使你能把 $vars

    • 它只适用于双引号,单引号将显示变量名称,这将导致错误。
    • 它会减慢字符串解析的速度。

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

    if (empty($last_db_error)) {
        echo "OK";
    } else {
        echo "Error activating subscription.\n".
              $last_db_error;
    }
    

    一旦你有很多文本要处理,我敦促你使用 PHP alternative syntax

    <?php if (empty($last_db_error)): ?>
            OK
    <?php else : ?>
            Error activating subscription.
            <?php echo $last_db_error; ?>
    <?php endif; ?>
    
        2
  •  2
  •   ChrisR    15 年前

    $last\u db\u错误是字符串还是对象?如果它是一个字符串,则应该使用大括号(如上面所述)在双引号之间正确显示,以便代码看起来正确。

    放置 var_dump($last_db_error) 在else语句中,查看它的输出。

        3
  •  1
  •   KB22    15 年前

    echo $last_db_error; 
    

    剩下的就不需要了。

        4
  •  0
  •   Marius    15 年前

    花括号用于计算更复杂的变量名。如果要在输出中使用花括号,请尝试对其进行转义,如下所示:

    if (empty($last_db_error)) {
        echo "OK";
    } else {
        echo "Error activating subscription.";
        echo "\{$last_db_error\}";
    }
    
        5
  •  0
  •   Vladislav Rastrusny    15 年前

    对我来说,它工作正常:

    <?php
    $last_db_error = "LLLLLLLLLLLL";
    echo "{$last_db_error}";
    

    它告诉我

        6
  •  0
  •   Anax    15 年前

    { .... }

        7
  •  0
  •   jerjer    15 年前

    最简单的方法是:

    echo $last_db_error;
    

    对于某些情况,请尝试以下方法:

     echo "${last_db_error}";
     echo ${'last_db_error'};
    

    Here is a good article regarding php variable names: curly braces