So che questa è una vecchia domanda, ma penso che qualcuno debba menzionare tutti i pro e contro:
Sintassi migliore : questa è la preferenza personale.
Prestazioni : nessuna differenza. Come molti hanno già detto, la doppia virgoletta potrebbe essere più veloce se si utilizzano in modo irrealistico molte variabili.
Migliore utilizzo : virgoletta singola (principalmente). Come ha detto @Khez, con apice singolo è possibile concatenare qualsiasi cosa, anche le chiamate di funzione e modifica variabile, in questo modo: echo 'hi ' . trim($name) . ($i + 1);. Il doppio-citazione unica cosa che può fare una sola citazione non può fare è l'utilizzo di \n, \r, \te simili.
Precisione di lettura : nessuna differenza (possono essere applicate preferenze personali).
Writability / Re-Writability / Debugging : nelle istruzioni a 1 riga non c'è alcuna differenza, ma quando si ha a che fare con più righe, è più facile commentare / commentare le righe durante il debug o la scrittura. Per esempio:
$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';
Meno escape : virgoletta singola. Per virgoletta singola è necessario scappare solo 2 caratteri ( 'e \). Per le virgolette doppie devi scappare 2 caratteri ( ", \) e altri 3 se richiesti ( $, {e }).
Meno cambiamenti : virgoletta singola. Ad esempio se hai il seguente codice:
echo 'Number ' . $i . '!';
E devi aumentare da 1 a $ i, quindi diventa like:
echo 'Number ' . ($i + 1) . '!';
Ma per una doppia citazione, dovrai cambiare questo:
echo "Number $i!";
a questa:
echo "Number " . ($i + 1) . "!";
Conclusione : usa ciò che preferisci .
echo 'Welcome '.$name.'!';