簡體   English   中英

如何在PHP中的雙引號中使用單引號?

[英]How to use single quotes within double quotes in PHP?

在PHP中創建鏈接:

echo "<a href=\"$currentFile?rowID=$row['id']\">click here</a>";

這將引發錯誤: Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING' 你該怎么做?

此外,混合使用單引號和雙引號,以及轉義雙引號會降低可讀性並始終會產生錯誤。 有沒有更好的方法來用其他語法創建引號,例如Ruby中的%Q()?

使用PHP 5.2.8。

問題是您的數組變量插值。 語法是

"$row[id]"

要么

"{$row['id']}"

所以:

"<a href=\"$currentFile?rowID=$row[id]\">click here</a>"

參見http://php.net/manual/en/language.types.string.php#language.types.string.parsing

如果引號引起混淆,請嘗試heredoc語法:

echo <<< END_HTML
    <a href="$currentFile?rowID=$row[id]">click here</a>
END_HTML;

...只需確保END_HTML; 本身就在一行上,沒有縮進,也沒有尾隨空格。 在這里,heredoc太過分了。 但是對於帶有許多變量的較大HTML塊,它比在任何地方轉義引號要容易得多。

PHP的heredoc

干杯

封閉變量{}這樣{$currentFile}{$row['id']}

sprintf是您帶變量的復雜字符串的朋友:

http://php.net/manual/zh/function.sprintf.php

echo sprintf('<a href="%s?rowID=%d">click here</a>', $currentFile, $row['id']);

在這里,我假設$ currentFile是一個字符串(您可以使用urlencode進一步操作該字​​符串),而$ row ['id']是一個整數。

對於雙引號內的命名數組,不應使用單引號:

echo "<a href=\"$currentFile?rowID=$row[id]\">click here</a>";

為了清楚起見,我建議您在單引號中回顯HTML代碼,並在雙引號中回顯它們的標簽。 當其他人查看您的代碼時,會使用大量的轉義引號使它看起來很復雜。

例如

echo '<a id="testlink" alt="blabla" href="test.php?somevar='.$xy.'">Test</a>';

暫無
暫無

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

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