在 echo 语句中使用双引号和单引号
Use double and single quotes in an echo statement
我正在努力研究如何在 echo 语句中同时使用双引号和单引号而不破坏 echo。
例如,我想创建一个 link 输出如下:
<a href="http:/www.blah.com" class="read-more" onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', 'Item name']);">Read this post...</a>
但是我想输出 PHP 变量来代替 href
并作为 onClick
中的参数之一
href
部分很简单,我可以打开 PHP 回显并将变量连接到:
echo '<a href="'.$link.'" class="read-more">Read this post...</a>';
但是当涉及到 onClick 中的参数时,我被卡住了,因为我无法将它们包括在内,因为 '
的使用中断了我的 echo:
echo '<a href="<?php echo the_permalink(); ?>" class="read-more" onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', ''. echo $pattern_name .'']);">Read this post...</a>';
所以上面的代码在到达 'trackEvent'
部分时中断,因为单引号将其打开。
我能做什么?
旁白:如果您这样做,您的 HTML 代码将更具可读性:
<a
href="http:/www.blah.com"
class="read-more"
onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', 'Item name']);"
>Read this post...</a>
每个属性都有自己的一行,因此很容易找到,编辑器中的水平滚动也变得没有必要了。很棒的是,这是完全有效的 HTML.
你有几个选择,但我个人觉得使用 echo 之类的东西时代码很难看
我会在这些方面提出更多建议(转义)
$pattern_name = "something";
$linkhref = someFunction();
echo "<a href='{$linkhref}' class='read-more' onclick='_gaq.push([\"_trackEvent\", \"External Link\", \"Buy Link\", \"{$pattern_name}\"]);'>Read this post...</a>";
其中
$pattern_name = "something";
echo "<a href='".someFunction()."' class='read-more' onclick='_gaq.push([\"_trackEvent\", \"External Link\", \"Buy Link\", \"{$pattern_name}\"]);'>Read this post...</a>";
个人喜好
结果...
<a href='index.php' class='read-more' onclick='_gaq.push(["_trackEvent", "External Link", "Buy Link", "something"]);'>Read this post...</a>
使用复杂(卷曲)语法,http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
反斜杠 (escape characters) 是你最好的朋友:
echo '<a href="'.the_permalink().'" class="read-more" onClick="_gaq.push([\'_trackEvent\', \'External Link\', \'Buy Link\', \''. $pattern_name .'\']);">Read this post...</a>';
我正在努力研究如何在 echo 语句中同时使用双引号和单引号而不破坏 echo。
例如,我想创建一个 link 输出如下:
<a href="http:/www.blah.com" class="read-more" onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', 'Item name']);">Read this post...</a>
但是我想输出 PHP 变量来代替 href
并作为 onClick
href
部分很简单,我可以打开 PHP 回显并将变量连接到:
echo '<a href="'.$link.'" class="read-more">Read this post...</a>';
但是当涉及到 onClick 中的参数时,我被卡住了,因为我无法将它们包括在内,因为 '
的使用中断了我的 echo:
echo '<a href="<?php echo the_permalink(); ?>" class="read-more" onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', ''. echo $pattern_name .'']);">Read this post...</a>';
所以上面的代码在到达 'trackEvent'
部分时中断,因为单引号将其打开。
我能做什么?
旁白:如果您这样做,您的 HTML 代码将更具可读性:
<a
href="http:/www.blah.com"
class="read-more"
onClick="_gaq.push(['_trackEvent', 'External Link', 'Buy Link', 'Item name']);"
>Read this post...</a>
每个属性都有自己的一行,因此很容易找到,编辑器中的水平滚动也变得没有必要了。很棒的是,这是完全有效的 HTML.
你有几个选择,但我个人觉得使用 echo 之类的东西时代码很难看
我会在这些方面提出更多建议(转义)
$pattern_name = "something";
$linkhref = someFunction();
echo "<a href='{$linkhref}' class='read-more' onclick='_gaq.push([\"_trackEvent\", \"External Link\", \"Buy Link\", \"{$pattern_name}\"]);'>Read this post...</a>";
其中
$pattern_name = "something";
echo "<a href='".someFunction()."' class='read-more' onclick='_gaq.push([\"_trackEvent\", \"External Link\", \"Buy Link\", \"{$pattern_name}\"]);'>Read this post...</a>";
个人喜好
结果...
<a href='index.php' class='read-more' onclick='_gaq.push(["_trackEvent", "External Link", "Buy Link", "something"]);'>Read this post...</a>
使用复杂(卷曲)语法,http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
反斜杠 (escape characters) 是你最好的朋友:
echo '<a href="'.the_permalink().'" class="read-more" onClick="_gaq.push([\'_trackEvent\', \'External Link\', \'Buy Link\', \''. $pattern_name .'\']);">Read this post...</a>';