이

php '' 와 ""의 차이

· 2013-11-19 (화) 13:46:28 · 3638 · 2
질답 게시판에

'' 와 "" 에 대한 글이 올라 온김에.

$a = '3';
$b = "3";
$c=3;

기본적으로 php 는 문자열에 '' 를 써야 합니다. 

다른 언어는 "" 는 문자열(string), '' 는 문자 하나(char)를 의미하지만

php 에서는 문자열은 '' 를 쓰는 경향이 있습니다... 즉 원칙적으로 php 에서 "" 는 필요 없습니다.

어디에서 봤냐고 하면 그건 . 모릅니다. 

그 차이는 

echo "$a";  => 3

echo '$a' => $a

에서 알수 있습니다 . 


기본적으로 php에서 '' 는 문자열,  "" 는 function 입니다.

$a = '하늘';
$b = '눈';
echo "$a에서 $b가 내려 옵니다.";

=> 하늘에서 눈가 내려 옵니다. 

echo '$에서 $b가 내려 옵니다.';

=> $에서 $b가 내려 옵니다. 

원하는 결과를 얻으려면

echo $a.'에서 '.$b.'가 내려 옵니다.';

라고 해야 합니다. 

이렇게 . 을 찍어서 문자열 연결 연산자를 포함 시켜야 합니다. 

이것은 생각보다 귀찮은 작업이고 가독성이 떨어져서 "$a에서 $b가 내려 옵니다." 라고 쓰게 됩니다. 

  sql이나 '' 의 반복적인 사용에서 이와 같은 귀차니즘은 크게 나타납니다.

$age = '20';
$addr= '서울';
echo "내 나이는 '$age'살 이고  주소는 '$addr' 입니다.\n"; // 정상적으로 표현 가능합니다.

//   echo '내나이는 '$age살' 이고 주소는 '$add4' 입니다.\n'; // 에러 납니다.
echo '내나이는 \''.$age.'살\' 이고 주소는 \''.$add4.'\' 입니다.'."\n"; 

라고 쪼개줘야 하는 작업을 해야 합니다.

무엇보다 '\n', '\t' 등이 작동하지 않습니다.

echo '안녕하세요.'."\n";
echo '나이 : '."\t".' 20'."\n";  

이처럼 약간은 복잡해져버리고 읽기도 힘들어 집니다. 

특히 sql에서는

mysql_query('select * from g4_member where mb_id = \'admin\' ');

정상작동하지 않습니다. 

mysql_query("select * from g4_member where mb_id = 'admin' ");

이라고 해줘야합니다.   



속도적으로는 '' 의 사용이 "" 보다 는 빠르다고 합니다. 

php 스클에서 테스트한거 봤는데 10만건 이하는 'aa' 가 "aa" 보다 빠르고 10만건 이상에서는 "" 가 '' 보다 빠르다고 합니다.


''와 ""의 복합 사용에서는, 

echo '제  나이는 '20살' 입니다.'  => echo '제 나이는 "20살" 입니다.' 혹은 echo "제 나이는 '20살' 입니다." 로 바꿔야 합니다.

echo "제 나이는 '$member['mb_id']' 입니다."; 를  

echo "제 나이는 '$member[mb_id]' 입니다." ;

혹은 echo "제 나이는 '{$member['mb_id']}' 입니다." ;

혹은 echo "제 나이는 '".$member['mb_id']."'입니다." ;

로 바꿔야 합니다. 

마찬가지로 ' 제 나이는 "$member[mb_id]" 입니다.';

 에러는 안나지만  결과물은 =>  제 나이는 "$member[mb_id]" 입니다.

이 경우는 '제 나이는 '.$member['mb_id'].' 입니다.'; 

참고적으로 

echo $member['mb_id'];
echo $member[mb_id];

의 차이와 

$_SESSION['mb_id']; 는 'a';
$_COOKIE['mb_id']; 는 'b';
$_GET['mb_id']; 는 'c';
$_POST['mb_id']; 는 'd';
$_CONSTANT['mb_id];는 'e' 
$_SERVER['mb_id']; 는 'f'

일때

 echo $mb_id;  의 결과 값의 차이는


|

댓글 2개

미래지향적?으로 $_GET['mb_id'] 으로 추천합니다.

예)
?stx=123
$stx <-- x
$_GET['stx'] <-- o
흠냐 정확히는 구분해서 사용하는것이 아닐까요?
전 보통 단순 문자에는 ''을 사용하고 안에 변수가 있다던가 경우에만 ""을 사용합니다.
나중에 제가 구분하기 편하게 하기 위해서 이기도 하구요~
요런 뜻이죠 '' 안에는 변수가 없다 모 이런 ㅋㅋㅋㅋ

결론적으로는 말씀 하신것처럼 ''이 속도 적인 측면에서는 빠르다고 하니 보편적으로는 ''을
쓰는것이 맞지 않을까 싶네용~ ㅎ
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
13-12-07 조회 3,063
13-12-06 조회 2,579
13-12-06 조회 3,118
13-12-06 조회 2,698
13-12-06 조회 2,918
13-12-06 조회 2,600
13-12-06 조회 3,339
13-12-06 조회 3,665
13-12-06 조회 2,687
13-12-06 조회 2,634
13-12-06 조회 3,707
13-12-05 조회 2,675
13-12-05 조회 3,272
13-12-05 조회 3,108
13-12-05 조회 3,542
13-12-05 조회 3,455
13-12-04 조회 8,273
13-12-03 조회 3,434
13-12-02 조회 2,717
13-12-02 조회 2,571
13-11-30 조회 2,511
13-11-29 조회 2,769
13-11-28 조회 2,984
13-11-27 조회 3,581
13-11-27 조회 2,968
13-11-27 조회 3,352
13-11-27 조회 2,501
13-11-27 조회 2,670
13-11-27 조회 4,712
13-11-26 조회 3,963
13-11-25 조회 3,453
13-11-25 조회 5,248
13-11-23 조회 2,603
13-11-23 조회 4,692
13-11-23 조회 4,243
13-11-23 조회 3,996
13-11-23 조회 3,948
13-11-22 조회 2,961
13-11-22 조회 3,645
13-11-22 조회 3,513
13-11-22 조회 3,072
13-11-22 조회 5,456
13-11-21 조회 2,709
13-11-21 조회 3,206
13-11-20 조회 3,574
13-11-19 조회 4,014
13-11-19 조회 3,017
13-11-19 조회 3,639
13-11-19 조회 2,984
13-11-19 조회 4,602
13-11-18 조회 3,021
13-11-18 조회 2,823
13-11-18 조회 3,106
13-11-18 조회 4,793
13-11-18 조회 4,261
13-11-18 조회 6,609
13-11-18 조회 3,931
13-11-18 조회 4,352
13-11-18 조회 3,734
13-11-18 조회 3,720
13-11-18 조회 3,084
13-11-16 조회 3,131
13-11-15 조회 4,332
13-11-15 조회 3,154
13-11-14 조회 2,910
13-11-14 조회 3,669
13-11-14 조회 4,033
13-11-13 조회 3,162
13-11-13 조회 3,211
13-11-13 조회 3,378
13-11-13 조회 4,253
13-11-13 조회 3,075
13-11-12 조회 3,380
13-11-12 조회 5,465
13-11-07 조회 3,108
13-11-07 조회 3,087
13-11-06 조회 3,035
13-11-05 조회 3,734
13-11-05 조회 3,518
13-11-05 조회 6,538
13-11-05 조회 3,494
13-11-04 조회 3,111
13-11-04 조회 3,140
13-11-04 조회 2,921
13-11-02 조회 3,573
13-11-02 조회 3,214
13-11-01 조회 3,467
13-11-01 조회 2,848
13-11-01 조회 2,985
13-10-31 조회 3,050
13-10-31 조회 3,443
13-10-31 조회 3,795
13-10-31 조회 3,020
13-10-30 조회 3,328
13-10-30 조회 7,576
13-10-30 조회 5,401
13-10-30 조회 3,294
13-10-29 조회 3,130
13-10-29 조회 4,236
13-10-29 조회 3,423