[英]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塊,它比在任何地方轉義引號要容易得多。
干杯
封閉變量{}
這樣{$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.