작은 따옴표로 묶인 문자열이 있고 때로는 큰 따옴표로 묶인 PHP의 일부 코드를 보는 이유가 약간 혼란 스럽습니다.
.NET 또는 C 언어로 작은 따옴표로 묶인 경우 문자열이 아니라 문자임을 알 수 있습니다.
작은 따옴표로 묶인 문자열이 있고 때로는 큰 따옴표로 묶인 PHP의 일부 코드를 보는 이유가 약간 혼란 스럽습니다.
.NET 또는 C 언어로 작은 따옴표로 묶인 경우 문자열이 아니라 문자임을 알 수 있습니다.
답변:
PHP 문자열 은 두 가지 방법뿐만 아니라 네 가지방법으로 지정할 수 있습니다.
\'
를 표시하려면 다른 백 슬래시로 이스케이프 처리 할 수 있습니다\\
( 예, 작은 따옴표로 묶인 문자열도 구문 분석 됨 ).$type
있고하고 싶다고가정 해 봅시다echo "The $types are"
. 변수를 찾습니다$types
. 이 문제를 해결하려면echo "The {$type}s are"
달러 부호 앞뒤에 왼쪽 괄호를 넣을 수 있습니다. 한 번 봐 가지고 분석 문자열을 배열 변수 등을 사용하는 방법을 참조하십시오.<<<
. 이 연산자 뒤에 식별자가 제공되고 줄 바꿈이 제공됩니다. 문자열 자체가 뒤 따르고 동일한 식별자가 다시 인용 부호를 닫습니다. 이 구문에서 따옴표를 이스케이프 할 필요는 없습니다.<<<
heredocs와 동일한순서로 식별되지만 다음에 오는 식별자는 작은 따옴표로 묶습니다 (예:)<<<'EOT'
. nowdoc에서는 구문 분석이 수행되지 않습니다.참고 : 작은 따옴표 안의 작은 따옴표와 큰 따옴표 안의 큰 따옴표는 이스케이프되어야합니다.
$string = 'He said "What\'s up?"';
$string = "He said \"What's up?\"";
속도 :
작은 따옴표보다 큰 따옴표보다 빠르지 않습니다. 특정 상황에서는 더 빠를 것입니다. 다음 은 PHP 4.3부터 작은 따옴표와 큰 따옴표가 본질적으로 똑같이 빠르는 한 가지 방법을 설명 하는 기사입니다 ( Useless Optimizations
하단, 섹션 C
). 또한이 벤치 마크 페이지 에는 작은 따옴표와 큰 따옴표가 있습니다. 대부분의 비교는 동일합니다. 큰 따옴표가 작은 따옴표보다 느린 비교가 있습니다.
\n
다른 부분 PHP
은 작은 따옴표입니다.
"
큰 따옴표의 속도 저하 는 과거의 일이 아닙니다. 요즘에는 극단적 인 경우를 제외하고는 큰 따옴표 처리 속도가 빨라졌습니다.
상황은 큰 따옴표로 평가되지만 작은 따옴표로 평가되지는 않습니다.
$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.';
는 \n
살아남는 것입니다. 반면 : $mailbody = "I want a line break:\nDone.";
줄 바꿈을 구문 분석합니다.
$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}!';
문자 시퀀스 $testWithAsciiAndUtf8Characters
가 실제 문자가 포함 된 문자열로 변환되었습니다.
'
작은 따옴표문자열을 지정하는 가장 간단한 방법은 작은 따옴표로 묶는 것입니다. 작은 따옴표는 일반적으로 더 빠르며 인용 된 모든 것은 일반 문자열로 처리됩니다.
예:
echo 'Start with a simple string';
echo 'String\'s apostrophe';
echo 'String with a php variable'.$name;
"
큰 따옴표PHP에서 큰 따옴표를 사용하여 코드를 구분하기 위해 마침표를 사용하지 마십시오 (참고 : 문자열에 {}
연결 ( .
) 연산자 를 사용하지 않으려면 중괄호 를 사용 하여 변수를 포함 시키십시오 ).
예:
echo "Start with a simple string";
echo "String's apostrophe";
echo "String with a php variable {$name}";
예. 작은 따옴표를 사용하는 것이 약간 더 빠릅니다.
PHP는 작은 따옴표 안에있는 것을 해석하기 위해 추가 처리를 사용하지 않습니다. 큰 따옴표를 사용할 때 PHP는 문자열 내에 변수가 있는지 확인하기 위해 구문 분석해야합니다.
\'
하기 위해 단일 아포스트로피를 이스케이프 처리하거나 \\'
백 슬래시를 표시하는 데 사용할 수있는 것 입니다. \n
개행 문자로 구문 분석되지 않는 것과 같은 기존의 이스케이프 시퀀스는 유의하십시오 . 문자열에 PHP 워드 프로세서
작은 따옴표로 묶인 문자열에는 해석 된 변수가 없습니다. 큰 따옴표로 묶인 문자열이 않습니다.
또한 큰 따옴표로 묶인 문자열에는 백 슬래시가없는 아포스트로피가 포함될 수 있고 작은 따옴표로 묶인 문자열에는 이스케이프되지 않은 따옴표가 포함될 수 있습니다.
작은 따옴표로 묶인 문자열은 구문 분석 할 필요가 없으므로 런타임에 더 빠릅니다.
PHP에서 두 'my name'
와 "my name"
문자열입니다. 자세한 내용 은 PHP 매뉴얼을 참조하십시오 .
당신이 알아야 할 것은
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
PHP, 사람들이 일정한 문자열을 정의하기 위해 작은 따옴표를 사용, 같은 'a'
, 'my name'
, 'abc xyz'
문자열을 정의하는 데 큰 따옴표를 사용하는 동안, 같은 식별자를 포함 "a $b $c $d"
.
그리고 다른 것은
echo 'my name';
보다 빠르다
echo "my name";
그러나
echo 'my ' . $a;
보다 느리다
echo "my $a";
다른 문자열을 사용하는 경우에도 마찬가지입니다.
<?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;
?>
PHP에서 작은 따옴표 텍스트는 문자열 값으로 간주되며 큰 따옴표 텍스트는 값을 바꾸고 처리하여 변수를 구문 분석합니다.
$test = "variable";
echo "Hello Mr $test"; // the output would be: Hello Mr variable
echo 'Hello Mr $test'; // the output would be: Hello Mr $test
여기서 큰 따옴표는 값을 구문 분석하고 작은 따옴표는 $test
변수 를 구문 분석하지 않고 문자열 값으로 간주됩니다 .
어쩌면 나는 조금 늦었고 주제가 조금 벗어 났지만 어쨌든 여기 있습니다.
당신은 반드시 때문에 사이에 문자열의 콘텐츠를 선택할 필요가 없습니다 :
alert("It's \"game\" time.");
또는alert('It\'s "game" time.');
당신이 영어 인용 부호의 사용, 아포스트로피에 대한 올바른 문자에 익숙하다면, 당신도 이중 또는 단일 따옴표를 사용, 그것은하지 않기 때문에 문제가 더 이상 할 수
alert("It’s “game” time.");
및alert('It’s “game” time.');
${variablename}
.