2009-04-26 9 views

Répondre

10

Il y a beaucoup de différences subtiles, vous aurez envie de lire le php documentation pour obtenir beaucoup de détails, mais les détails importants sont:

Les guillemets doubles sont analysées alors que les guillemets simples sont littérales.

Vous pouvez utiliser des variables en ligne avec des guillemets, mais pas avec des guillemets simples.

Il y a quelques prises si:

<?php 
$beer = 'Heineken'; 
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names 
echo "He drank some $beers"; // won't work; 's' is a valid character for variable names but the variable is "$beer" 
echo "He drank some ${beer}s"; // works 
echo "He drank some {$beer}s"; // works 
?> 

Les guillemets simples sont un peu plus rapide.

+2

ils sont plus rapides car php ne vérifie pas les chaînes pour les variables – sshow

+1

Droite, car ce sont des littéraux, pas des chaînes analysées. – cgp

+0

il convient de souligner que, bien que oui, les guillemets simples sont plus rapides, la différence est minuscule et ne doit pas être surestimée. – nickf

9

Lorsqu'une chaîne est placée entre guillemets, des séquences d'échappement telles que \n et des identificateurs de variable tels que $var sont interprétés. Voir les PHP strings manual pour des détails spécifiques et des exemples.

+0

+ 1 pour avoir inclus des informations sur les séquences d'échappement, ce qu'aucune autre réponse ne semble avoir ici. –

2

Le le plus grand est ceci. A l'intérieur des guillemets doubles, vous pouvez inclure des variables, mais à l'intérieur des guillemets simples, le nom de la variable sera littéral:

$var1 = "hello"; 

// this will echo "hello world" 
echo "$var1 world"; 

// this will echo $var1 world 
echo '$var1 world'; 

En utilisant guillemets doubles devient extrêmement utile dans un certain nombre de situations, expecially lorsque vous placez { } autour des noms de variables. Voici quelques exemples (certainement d'autres peuvent vous donner plus d'exemples):

// array elements 
echo "Element 5 is {$myArray[5]}"; 
echo "Element 2 subelement 3 is {$myArray[2][3]}"; 
// 
// a dynamic key 
$value = "thing"; 
$someValue = $myArray["some{$value}"]; // returnd $myArray[something] 
Questions connexes