2009-09-09 26 views
16

Powiel możliwe:
PHP: different quotes?Jaka jest różnica między 'i "w PHP

Proste pytanie:

Jaka jest różnica między' i" w php? Kiedy powinienem użyć?

+7

Dupe: http: // stackoverflow. com/questions/1318028/php-different-quotes – strager

+0

Proszę przeszukać stackoverflow (pole wyszukiwania znajduje się w prawym górnym rogu) przed opublikowaniem nowego pytania. – ChristopheD

+0

Zrobiłem, faktycznie. najwyraźniej nie dość dobrze. dzięki – johnnietheblack

Odpowiedz

13

zasadzie pojedynczych cudzysłowów jest zwykły tekst z praktycznie żadnym szczególnym przypadku natomiast podwójnych cudzysłowów mają zmienne interpolacji (np echo "Hello $username";), jak również zbiegłych sekwencje takie jak „\ n” (nowa linia).

Ty może dowiedzieć się więcej o ciągach w PHP's manual.

0

„interpretuje uciec znaków i zmiennych." Czy też nie.

1

Różnica polega na tym, struny między cudzysłowy (”) są przetwarzane dla zmiennej i uciec podstawienie sekwencji. Ciągi w cudzysłowie (") nie są.

Tak, używając cudzysłowów (") można zrobić.

$count = 3; 
echo "The count is:\t$count"; 

które produkują

To samo w apostrofach zwraca ciągiem znaków

Również znaki, które muszą zostać usunięte. Jeśli masz ciąg znaków, taki jak:

'John said, "Hello"' 

prawdopodobnie użyjesz pojedynczych cudzysłowów, aby uniknąć konieczności ucieczki od cudzysłowu w łańcuchu i na odwrót.

2

Wszystkie zmienne wewnątrz "cytowanego ciągu zostaną sparsowane.Każdy zmienny w" cytowanym łańcuchu nie zostanie przeanalizowany i zostanie pokazany dosłownie jako nazwa zmiennej.Z tego powodu 'cytowane ciągi są bardzo nieznacznie szybsze dla PHP . do procesu

$test = 'hello'; 
echo "this is a $test"; // returns this is a hello 
echo 'this is a $test'; // returns this is a $test 

powiedziałbym stosowanie "cytuje chyba że chcesz zmiennych wewnątrz swoich strun

0

W jednym słowem:. gdy chcesz wszystkich znaków specjalnych (jak \ n) i varables (jak $ number) być zauważonym i procesem ss.

18

Istnieją 3 syntax used to declare strings, w PHP < = 5.2:

Z apostrofami:

zmienne i sekwencje dla znaków specjalnych nie będzie rozszerzony

Na przykład:

echo 'Variables do not $expand $either'; 

wyświetli:

Variables do not $expand $either 


z podwójnymi cudzysłowami:

Najważniejszą cechą z ciągów o podwójnym cudzysłowiu jest to, że nazwy zmiennych zostaną rozwinięte.

Na przykład:

$a = 10; 
echo "a is $a"; 

wyświetli:

a is 10 


A z heredoc:

składni heredoc tekst zachowuje się tak jakby Ciąg podwójnie cytowany, bez cudzysłowów . Oznacza to, że notowania w heredoc nie muszą być uciekł,

Na przykład:

$a = 10; 
$b = 'hello'; 

$str = <<<END_STR 
a is $a 
and "b" is $b. 
END_STR; 

echo $str; 

będzie Ci:

a is 10 
and "b" is hello. 
Powiązane problemy