PHP将Class和id编写为单引号而不是双引号.为什么?

Sha*_*ane 2 html php joomla

我最近在Joomla项目上遇到了很多错误,并且发现了(在类代码中)......

return "<span class='...
Run Code Online (Sandbox Code Playgroud)

要么

echo "<h3 id='...
Run Code Online (Sandbox Code Playgroud)

代替

return "<span class=\"...
echo "<h3 id=\"...
Run Code Online (Sandbox Code Playgroud)

这包括引号中的变量很多次,但它仍然可以通过单引号找到我的浏览器.在经历和改变这些之前,我想看看别人有什么要说的.我的项目是http://dev.thediabetesnetwork.com.

我已经看了这个并发现了很多相互矛盾的信息,所以我想重新讨论最新的PHP /浏览器配置,看看我是否忽略了其他细节.

Kin*_*nch 5

浏览器接受两者,因此没有更深层次的理由选择一个在另一个之前.从PHP的角度来看,单引号的可读性略高,因为您可以用双引号括起字符串并使用变量替换.比较你自己

"<a href='$url'>Foo</a>"
"<a href=\"$url\">Foo</a>"
'<a href="' . $url . '">Foo</a>'
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是例如手动替换内容

sprintf('<a href="%s">Foo</a>', $url);
Run Code Online (Sandbox Code Playgroud)

或者是heredoc

echo <<<HTML
<a href="$url">Foo</a>
HTML;
Run Code Online (Sandbox Code Playgroud)

我会选择最适合当前环境的那个(关于可读性).


dre*_*010 5

如果字符串中的所有双引号都被转义,那么读起来会容易得多\.

如果需要在字符串表达式中输出变量,则必须使用双引号.如果要在双引号内输出HTML,则可以使用'\"包含HTML属性.第一个是首选,因为它导致更清晰的PHP代码.

如果您不希望HTML使用单引号,那么您可以转义所有引号,使用heredoc语法,或将变量连接到字符串中,如:

echo '<div class="test">' . $var . '</div>';
Run Code Online (Sandbox Code Playgroud)