Sei que essa é uma pergunta antiga, mas acho que alguém precisa mencionar todos os prós e contras:
Melhor sintaxe : essa é a preferência pessoal.
Desempenho : sem diferença. Como muitos mencionados, as aspas duplas podem ser mais rápidas se você usar muitas variáveis irrealisticamente.
Melhor uso : aspas simples (principalmente). Como disse @Khez, com aspas simples você pode concatenar nada, chamadas de função mesmo e modificação variável, assim: echo 'hi ' . trim($name) . ($i + 1);
. A única coisa double-quote pode fazer isso aspa simples não pode fazer é o uso de \n
, \r
, \t
e afins.
Legibilidade : Não há diferença (pode haver preferência pessoal).
Gravação / regravação / depuração : nas instruções de 1 linha não há diferença, mas ao lidar com várias linhas, é mais fácil comentar / descomentar linhas durante a depuração ou gravação. Por exemplo:
$q = 'SELECT ' .
't1.col1 ' .
',t2.col2 ' .
//',t3.col3 ' .
'FROM tbl1 AS t1 ' .
'LEFT JOIN tbl2 AS t2 ON t2.col2 = t1.col1 ' .
//'LEFT JOIN tbl3 AS t3 ON t3.col3 = t2.col2 ' .
'WHERE t1.col1 = ' . $x . ' ' .
' AND t2.col2 = ' . $y . ' ' .
//' AND t3.col3 = ' . $z . ' ' .
'ORDER BY t1.col1 ASC ' .
'LIMIT 10';
Menos escape : aspas simples. Para aspas simples, você precisa escapar apenas de 2 caracteres ( '
e \
). Para aspas duplas, você precisa escapar de 2 caracteres ( "
, \
) e mais 3, se necessário ( $
, {
e }
).
Menos alterações : aspas simples. Por exemplo, se você tiver o seguinte código:
echo 'Number ' . $i . '!';
E você precisa aumentar de 1 a $ i, para que se torne algo como:
echo 'Number ' . ($i + 1) . '!';
Mas, para aspas duplas, você precisará alterar isso:
echo "Number $i!";
para isso:
echo "Number " . ($i + 1) . "!";
Conclusão : use o que preferir .
echo 'Welcome '.$name.'!';