单引号而不是双引号?

时间:2010-11-30 19:56:20

标签: php asp.net html

由于HTML和ASP.NET和PHP等语言在使用属性或字符串时都可以接受,为什么有些人会互换使用单引号和双引号?

我的理解是,在可能的情况下使用双引号在语法上是正确的,当您需要为内联逻辑嵌入双引号时,单引号是正确的。

我有什么遗失的吗?

例如:

HTML

<a href='http://google.com'>Google</a>

PHP

<? echo 'Hello World!'; ?>

ASP.NET

<form id='myForm' runat='server'></form>

7 个答案:

答案 0 :(得分:2)

从技术上讲,在PHP中,单引号更快,因为您不需要解析其中的内容。

修改 所以双引号会自动转换为单引号,但是如果你在双引号字符串中有变量替换,那就是当你获得性能命中时:

http://www.codeforest.net/php-myth-busters-using-single-quotes-on-string-is-faster-then-double-quotes

无论哪种方式,在陪审团讨论这个问题时回答OP的问题,玩它是安全的(TM)并使用单引号:)

答案 1 :(得分:1)

在HTML中,除了明显的情况之外,我认为“为什么”不能回答:当字符串包含双引号时单引号字符串更方便,反之亦然。

在PHP中,当您不需要任何特殊插值或转义字符时,单引号字符串会更方便。

我的个人偏好总是在HTML中使用双引号,并且总是在PHP中使用单引号,除非我需要插值。因此,我认为单引号字符串在PHP中是“常量”,而双引号字符串意味着其他东西正在发生。

&lt; views&gt;但为什么有些人会异想天开地在两者之间做出选择呢?可能是因为他们没有纪律,后来也不是很好的程序员。&lt; / opinion&gt;

答案 2 :(得分:0)

来自W3C:http://www.w3.org/TR/html4/intro/sgmltut.html

All attribute values [should] be delimited using either double quotation
marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39).

Single quote marks can be included within the attribute value when the
value is delimited by double quote marks, and vice versa.

PHP中的字符串遵循相同的原则 - 可互换的单引号/双引号。

答案 3 :(得分:0)

我想说,对于大多数人来说,单引号和双引号在不真正理解差异的情况下可以互换使用和处理。

两者都用于创建/描述字符串。

'Hello'

"Hello"

两者都是字符串,在这种情况下使用时也是一样的。

处理方面的差异。从技术上讲,单引号字符串在创建并存储到内存时不会被处理。它们按原样使用并制成字符串。

双引号字符串在创建时会被处理并存储到内存中。这就是为什么你可以把一个变量放到一个双引号字符串中它的值将被放入,但是在一个带引号的字符串中放入了文字变量。对于大多数情况,如果你唱一个或者一个或者没有真正的区别。双引号,除了用变量,函数调用等创建字符串以及在处理中保存几毫秒时。

答案 4 :(得分:0)

基本上,选择是你的。但为了便于阅读和阅读可维护性,选择一种形式&amp;坚持下去。

答案 5 :(得分:0)

当我将html嵌入到字符串中时,我发现使用单引号是有利的,主要是在处理模板时。这是一个例子:

public string EmailTemplate = 
@"<div style='color:red'>HEY {0}! BUY MORE STUFF</div>"

// later in code

instanceOfStringBuilder.AppendFormat(EmailTemplate, firstNameVariable); 

对于单引号或双引号是否“更好”,我的脑海中没有任何层次结构。这纯粹是一致的问题,并且具有以编程方式工作的东西。

答案 6 :(得分:0)

我同意@stillstanding关于HTML中的可互换性问题。但是,在PHP中,我在需要解析的字符串中的变量的实例中使用双引号。考虑一下:

<?php
    $id = 123;
    echo "Your id is $id<br />";
    echo 'Your id is $id';
?>

这将输出

  

你的身份证是123

     

您的ID是$ id