簡體   English   中英

快速PHP問題

[英]Quick PHP question

我摘錄如下:

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

問題是除非我僅使用$last_db_error而不使用引號和括號,否則不會顯示"{$last_db_error}" 我在這里想念什么嗎? 上面的語法不正確嗎?

在這種情況下,括號和引號沒有用。

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

會做得完美。

順便說一句,即使您可以在PHP中將$vars放在引號內,也不建議這樣做,因為:

  • 它僅適用於雙引號,單引號將顯示var名稱,這會導致錯誤。
  • 它減慢了字符串解析的速度。

使用點運算符連接變量更為合適:

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

並且,一旦您要處理大量文本,我敦促您使用PHP替代語法 EG:

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

$ last_db_error是字符串還是對象? 如果是字符串,則應該使用花括號將雙引號正確顯示(如您在上面發布的內容),因此代碼似乎正確。

將一個var_dump($last_db_error)放在else語句中,然后查看其輸出。

只需使用

echo $last_db_error; 

剩下的就不需要了。

大括號用於評估更復雜的變量名稱。 如果要在輸出中使用大括號,請嘗試轉義大括號,如下所示:

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

對我來說,它可以正常工作:

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

它告訴我LLLLLLLLLLLL

也許您正在使用某種模板系統來解析{ .... }內部的所有內容?

最簡單的方法是:

echo $last_db_error;

在某些情況下,請嘗試以下操作:

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

這是一篇關於php變量名稱的好文章:花括號

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM