php) " 와 ' 의 차이

카테고리 : 웹 프로그래밍/PHP

" ' 차이 가 있을까?

echo 'Hello World';

 

echo "Hello World";

이 둘의 차이?

 

정답은 있다.

차이 하나를 체감하긴 매우 어려우나

차이 하나가 유저 1000명이 모이면 1000배 차이가 나는것이다.

 

속도 테스트를 해보자!

function get_time() {
    list($usec, $sec) = explode(' ', microtime());
    return ((float)$usec + (float)$sec);
}
for($i=0;$i<1000;$i++){
	echo 'Hello World';//cpu 로드만
}

$start = get_time();

for($i=0;$i<1000;$i++){
	echo 'Hello World';
}
$time = get_time() - $start;

$start = get_time();

for($i=0;$i<1000;$i++){
	echo "Hello World";
}

$time1 = get_time() - $start;
echo '<br/>'.$time.'초 걸림';
echo '<br/>'.$time1.'초 걸림<br/>';
if($time>$time1) echo ($time-$time1).'차이 뒤가 빠름';
else echo ($time1-$time).'차이 앞이 빠름';

$start = get_time();

for($i=0;$i<1000;$i++){
	echo "Hello World";
}
$time = get_time() - $start;

$start = get_time();

for($i=0;$i<1000;$i++){
	echo 'Hello World';
}

$time1 = get_time() - $start;
echo '<br/>'.$time.'초 걸림';
echo '<br/>'.$time1.'초 걸림<br/>';
if($time>$time1) echo ($time-$time1).'차이 뒤가 빠름';
else echo ($time1-$time).'차이 앞이 빠름';

각각 1000번씩 두번 테스트를 하고 순서는 섞었다.

 



결과는?

4.6014785766602E-5초 걸림
0.00010395050048828초 걸림
5.793571472168E-5차이 앞이 빠름

> ' 의 속도 승

 

5.5074691772461E-5초 걸림
5.4121017456055E-5초 걸림
9.5367431640625E-7차이 뒤가 빠름

> ' 의 속도 승

 

이 차이는 어느 정도 일까?

수치상으로 아주 차이가 나보이지는 않는다.

문자 개수가 11개 *1000번 = 11000 글자 밖에 안되고

php로 사이트가 커지면 한페이지 한페이지마다 처리 지연이 쌓여 느려질수있기 때문에 둘의 속도차이는 매우 중요하다.

왜 그럴까?

바로 ' 와 " 의 문자열 처리 방식이 달라서이다.

" 로 감싸진 문자열에 $변수 가 있으면 확인해서 치환하게 된다.

그러나 ' 는 문자로 인식하고 처리 과정이 없다.

따라서 ' 이 빠르고

정적인 부분은 ' 로 무조건 처리를 해줘야 된다.

 

 

처음에는 이게 헷갈릴수도 있는데 php를 쓰려면 이런 습관이 매우 중요하다.

 

 

한가지 예외

<?php
$hi='hi098123';

echo $hi.' HI!';//hi098123 HI!
echo "{$hi} HI!";//hi098123 HI!
?>

두 방식의 출력 결과는 같은데 아래의 방식이 더 빠르다.

 

(.) 으로 문자를 합치는것 보다. (") 으로 변수를 감싸거 String을 표현하는게 더 좋은방식이다.

'웹 프로그래밍 > PHP' 카테고리의 다른 글

PHP) 어제 날짜 구하기  (3) 2020.01.17
PHP) Windows GUI 프로그램(*.exe) 실행하기  (0) 2019.12.06
php) echo 보다 빠른 글 출력  (0) 2019.06.07
php) include vs include_once  (0) 2019.06.07
php) rand() vs mt_rand()  (0) 2019.06.07
php) isset() vs empty()  (0) 2019.06.07
php) $_REQUEST, $_GET, $_POST  (0) 2019.06.06
php) 문자 출력하기  (0) 2019.06.06

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글