Estou um pouco confuso por que vejo algum código no PHP com a string colocada entre aspas simples e às vezes entre aspas duplas.
Eu só sei no .NET, ou na linguagem C, se estiver entre aspas simples, isso significa que é um caractere, não uma string.
Estou um pouco confuso por que vejo algum código no PHP com a string colocada entre aspas simples e às vezes entre aspas duplas.
Eu só sei no .NET, ou na linguagem C, se estiver entre aspas simples, isso significa que é um caractere, não uma string.
Respostas:
As strings do PHP podem ser especificadas não apenas de duas maneiras, mas de quatro maneiras.
\'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 ).$typee 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.<<<. 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.<<<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 Optimizationsna 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.
\n, qualquer outra coisa no meu PHPcó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:
$s = "dollars";
echo 'This costs a lot of $s.'; // This costs a lot of $s.
echo "This costs a lot of $s."; // This costs a lot of dollars.
$mailbody = 'I want a line break:\nDone.';é manter \nvivo. 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 $testWithAsciiAndUtf8Charactersforam 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:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
" 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:
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
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.
\'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 \nNÃO serão analisadas para o caractere de nova linha. Documentação do PHP sobre strings
Uma 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.
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
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
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 é,
echo 'my name';
é mais rápido que
echo "my name";
mas
echo 'my ' . $a;
é mais lento que
echo "my $a";
Isso é verdade para outros usados de string.
<?php
$fname = "David";
// Single quotes
echo 'My name is $fname.'; // My name is $fname.
// Double quotes
echo "My name is $fname."; // My name is David.
// Curly braces to isolate the name of the variable
echo "My name is {$fname}."; // My name is David.
// Example of heredoc
echo $foo = <<<abc
My name is {$fname}
abc;
// Example of nowdoc
echo <<< 'abc'
My name is "$name".
Now, I am printing some
abc;
?>
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.
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
Aqui, aspas duplas analisam o valor e aspas simples são consideradas como valor da string (sem analisar a $testvariável).
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.
Aqui algumas possibilidades de aspas simples e duplas com variável
$world = "world";
"Hello '.$world.' ";
'hello ".$world."';
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:
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
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.');
${variablename}.