(php5라고 가정)
<?php
$foo = 'some words';
//case 1
print "these are $foo";
//case 2
print "these are {$foo}";
//case 3
print 'these are ' . $foo;
?>
1과 2 사이에 많은 차이가 있습니까?
그렇지 않다면 1/2에서 3 사이는 어떻습니까?
-
답변 # 1
-
답변 # 2
2012 년 1 월 이후로 성능 차이는 관련이 없었으며 이전에는 아마도 더 높았습니다.
Single quotes: 0.061846971511841 seconds Double quotes: 0.061599016189575 seconds
이전의 PHP 버전에는 차이가있을 수 있습니다. 개인적으로 작은 따옴표를 큰 따옴표보다 선호하기 때문에 편리한 차이였습니다. 이 기사의 결론은 훌륭한 지적입니다.
와이즈 비즈(이 기사는이 문구를 인용하지만, 원래의 퀴프는 처칠을 거짓말 쟁이로 묘사하기 위해 Joseph Goebbels의 선전 부처가 발명 한 Winston Churchill에 허위로 귀속되었을 가능성이 높습니다 :
와이즈 비즈이것은 "나 자신을 속이지 않았다는 통계를 믿지 않는다"는 의미가 없다.)
-
답변 # 3
라이브 벤치 마크 :
http://phpbench.com/
작은 따옴표와 큰 따옴표로 변수를 연결할 때 실제로 미묘한 차이가 있습니다. -
답변 # 4
@Adam의 테스트 사용
Never trust a statistic you didn’t forge yourself.
다음이 훨씬 빠릅니다.
Ich traue keiner Statistik, die ich nicht selbst gefälscht habe.
이것은 큰 따옴표로 묶인 "문자열"이 평가되기 때문에 작은 따옴표로 묶인 '문자열'이 그대로 사용됩니다 ...
-
답변 # 5
너무 많이 붙 잡지 마십시오 PHP에서 문자열 연산을 최적화하려고합니다. 데이터베이스 쿼리가 제대로 작성되지 않았거나 캐싱 구성표를 사용하지 않는 경우 연결 대 보간은 의미가 없습니다 (실제 성능에서는). 나중에 코드를 쉽게 디버깅 할 수있는 방식으로 문자열 연산을 작성하십시오. 성능 차이는 무시할 수 있습니다.
@uberfuzzy 이것이 언어 사소한 것에 대한 질문이라고 가정하면, 괜찮습니다. 나는 데이터베이스 쿼리와 같은 실제 성능 싱크와 비교할 때 실제 응용 프로그램에서 작은 따옴표, 큰 따옴표 및 heredoc 간의 성능을 의미가 없다는 대화에 추가하려고합니다.
"these are " . $foo
관련 자료
- prolog - 맵리스트를 사용하여 문자열 목록을 원자로 변경합니까?
- docker - jq를 사용하여 길이별로 배열의 문자열 정렬
- 파이썬을 사용하여 두 목록의 문자열이 거의 같은지 확인하는 방법
- docker - windowENV 대 processenv 대 window_env vuejs 앱에서 사용하는 동안 차이점은 무엇입니까?
- r - "combn"및 "outer"기능의 조합을 사용하여 운영 속도 향상
- regex r - 벡터 문자열을 사용하여 텍스트에서 문자열 제거
- swift - Codable을 사용하여 사이에 함수를 사용하여 문자열에서 정수로 인코딩/디코딩
- html - Django 템플릿 {% staric 'img/header/header-1jpg %}에서 인라인 url () 속성 사용
- typescript - 열거 형 문자열을 사용할 때 할당 된 값에서 열거 형 키를 가져올 수 있습니까?
- android - Kotlin에서 단일 표현식 fun과 var를 사용하는 것의 차이점은 무엇입니까?
- javascript - JS/jQuery를 사용하여 인라인 텍스트의 CSS 색상을 동적으로 변경
- 파이썬에서 z = x + y와 z = f"{x} {y}"를 사용하는 것의 차이점은 무엇입니까?
- python - 속도를 위해 문자열 목록 구문 분석
- 쉼표를 사용하여 PowerShell에서 문자열을 연결하는 이유는 무엇입니까?
- C 및 C ++에서 부동 소수점 캐스트와 부동 소수점 접미사를 사용하는 데 차이가 있습니까?
모든 "실제에서 더 빠를 수있는"질문과 마찬가지로 실제 테스트를 이길 수는 없습니다.
모든 것을 페이지로 넘기려면 몇 번 실행하십시오 ...
0.0035568
0.0035388
0.0025394
따라서 보간은 예상대로 보간이 거의 동일합니다 (보간 엔진이 처리해야하는 추가 문자로 인해 노이즈 레벨 차이가있을 수 있음). 연속 연결은 속도의 약 66 %이며 큰 충격이 아닙니다. 보간 파서는보고, 수행 할 작업을 찾은 다음 간단한 내부 문자열 연결로 마무리합니다. concat이 비싸더라도 보간 기는 변수를 파싱하고 원래 문자열을 트리밍/복사하기 위해 모든 작업을이후수행해야합니다.
Somnath의 업데이트 :
실시간 로직 위에 Method4 ()를 추가했습니다.
문자열 만 선언하고 해당 문자열을 구문 분석 할 필요가없는 경우, PHP 디버거를 구문 분석하기 위해 혼동하는 이유는 무엇입니까? 내 의견이 있으시길 바랍니다.