As strings do PHP podem ser especificadas não apenas de duas maneiras, mas de quatro maneiras.
- As strings entre aspas simples exibirão as coisas quase completamente "como estão". Variáveis e a maioria das seqüências de escape não serão interpretadas. A exceção é que, para exibir uma aspas simples literal, você pode escapar com uma barra invertida
\'
e, para exibir uma barra invertida, pode escapar com outra barra invertida\\
( portanto, sim, até as seqüências de caracteres entre aspas simples são analisadas ).
- As strings de aspas duplas exibirão uma série de caracteres de escape (incluindo algumas expressões regulares) e as variáveis nas strings serão avaliadas. Um ponto importante aqui é que você pode usar chaves para isolar o nome da variável que deseja avaliar . Por exemplo, digamos que você tenha a variável
$type
e desejaecho "The $types are"
. Que vai olhar para a variável$types
. Para contornar esse usoecho "The {$type}s are"
Você pode colocar a chave esquerda antes ou depois do cifrão. Dê uma olhada na análise de strings para ver como usar variáveis de matriz e outras coisas.
- A sintaxe da cadeia Heredoc funciona como cadeias de caracteres duplas. Começa com
<<<
. Após esse operador, é fornecido um identificador e, em seguida, uma nova linha. A sequência em si segue e, em seguida, o mesmo identificador novamente para fechar a cotação. Você não precisa escapar de aspas nesta sintaxe.
- A sintaxe de string do Nowdoc (desde o PHP 5.3.0) funciona essencialmente como strings de aspas simples. A diferença é que nem mesmo aspas simples ou barras invertidas precisam ser escapadas. Um nowdoc é identificado com a mesma
<<<
sequência usada para heredocs, mas o identificador a seguir é colocado entre aspas simples, por exemplo<<<'EOT'
. Nenhuma análise é feita no nowdoc.
Notas:
As aspas simples dentro das aspas simples e as aspas duplas dentro das aspas duplas devem ser escapadas:
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
Velocidade:
eu não daria muita importância às aspas simples, sendo mais rápidas que as aspas duplas. Eles provavelmente são mais rápidos em determinadas situações. Aqui está um artigo explicando uma maneira pela qual aspas simples e duplas são essencialmente igualmente rápidas desde o PHP 4.3 ( Useless Optimizations
na parte inferior, seção C
). Além disso, esta página de benchmarks possui uma comparação de cotação única vs dupla. A maioria das comparações é a mesma. Há uma comparação em que aspas duplas são mais lentas que aspas simples.
${variablename}
.\n
, qualquer outra coisa no meuPHP
código está entre aspas simples."
aspas duplas é uma coisa do passado. As atualizações aumentaram o processamento de aspas duplas para ser o mais rápido, em todos os casos, exceto nos extremos, atualmente.As coisas são avaliadas entre aspas duplas, mas não em uma única:
fonte
$mailbody = 'I want a line break:\nDone.';
é manter\n
vivo. Visto que:$mailbody = "I want a line break:\nDone.";
irá analisar a quebra de linha.$testWithAsciiAndUtf8Characters = "\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!";
$simpleTest = '\x48\x41\x4c\114\117 \u{0147}\u{012B}\u{0144}\u{014D}!';
As seqüências de caracteres$testWithAsciiAndUtf8Characters
foram transformadas em string com letras reais.'
Único citadoA maneira mais simples de especificar uma string é colocá-la entre aspas simples. As aspas simples geralmente são mais rápidas e tudo o que é citado por dentro é tratado como uma sequência simples.
Exemplo:
"
Duplo citadoUse aspas duplas no PHP para evitar ter que usar o período para separar o código (Nota: Use chaves
{}
para incluir variáveis se você não quiser usar o.
operador concatenation ( )) na string.Exemplo:
Existe um benefício de desempenho entre aspas simples e aspas duplas no PHP?
Sim. É um pouco mais rápido usar aspas simples.
O PHP não usará processamento adicional para interpretar o que está dentro da aspas simples. Quando você usa aspas duplas, o PHP precisa analisar para verificar se existem variáveis dentro da string.
fonte
\'
para escapar de um único apóstrofo para uso dentro da cadeia (ou\\'
para exibir a barra invertida). Observe que as seqüências de escape tradicionais, como\n
NÃO serão analisadas para o caractere de nova linha. Documentação do PHP sobre stringsUma sequência de aspas simples não possui variáveis interpretadas. Uma string com aspas duplas faz.
Além disso, uma sequência de aspas duplas pode conter apóstrofos sem barras invertidas, enquanto uma sequência de aspas simples pode conter aspas sem escape.
As strings de aspas simples são mais rápidas no tempo de execução porque não precisam ser analisadas.
fonte
No PHP, ambos
'my name'
e"my name"
são string. Você pode ler mais sobre isso no manual do PHP .Coisa que você deve saber são
Em PHP, as pessoas usam aspas simples para definir uma string constante, como
'a'
,'my name'
,'abc xyz'
, ao usar aspas duplas para definir uma string conter identificador como"a $b $c $d"
.E outra coisa é,
é mais rápido que
mas
é mais lento que
Isso é verdade para outros usados de string.
fonte
Exemplo de aspas simples, duplas, heredoc e agora
fonte
No PHP, o texto de aspas simples é considerado como valor da string e o texto de aspas duplas analisará as variáveis substituindo e processando seu valor.
Aqui, aspas duplas analisam o valor e aspas simples são consideradas como valor da string (sem analisar a
$test
variável).fonte
Ambos os tipos de caracteres fechados são cadeias de caracteres. Um tipo de cotação é convenientemente usado para incluir o outro tipo de cotação.
"'"
e'"'
. A maior diferença entre os tipos de aspas é que as referências de identificador incluídas são substituídas por aspas duplas, mas não por aspas simples.fonte
A diferença entre usar aspas simples e aspas duplas no php é que, se usarmos aspas simples na instrução echo, ela será tratada como uma string. ... mas se inserirmos o nome da variável entre aspas duplas, ele produzirá o valor dessa variável junto com a string.
fonte
Aqui algumas possibilidades de aspas simples e duplas com variável
fonte
Uma Coisa:
É muito importante observar que a linha com o identificador de fechamento do Heredoc não deve conter outros caracteres, exceto um ponto e vírgula (;) . Isso significa especialmente que o identificador não pode ser recuado e não pode haver espaços ou tabulações antes ou depois do ponto e vírgula.
Exemplo:
fonte
Talvez eu esteja um pouco atrasado e um pouco fora de tópico, mas aqui está assim mesmo:
Você não precisa necessariamente escolher por causa do conteúdo da sua string entre:
alert("It's \"game\" time.");
oualert('It\'s "game" time.');
Se você estiver familiarizado com o uso das aspas em inglês e o caractere correto para o apóstrofo, poderá usar aspas duplas ou simples, pois isso não importará mais:
alert("It’s “game” time.");
ealert('It’s “game” time.');
fonte