웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP 혼자 공부하기 - 3 :: 변수형
2003.04.09 15:31
다음장은 당연히 Type - 변수형에 관한 겁니다. 사실 이부분은 제가 안해도 수많은 분들이 이미 강의를 해주셨지만... -_-;; 혼자놀기의 진수를 보여드리기 위해서, 다시 한번 짚고 넘어가도록 하겠습니다.
PHP에서 사용되는 변수형은,
boolean(불린형 - true/false), integer(정수형 - 1,2,3,4), float(실수형 - 1.2323, 2.44133, 4.5542 - double 과 같음), string(문자열형 - "행복한고니", "Test")
array(배열형), object(객체형)
resource(리소스), NULL(널)
그리고 매뉴얼에서 함수정의형으로 사용하는...
mixed(반환값의 형태가 여러종류), number(숫자형 - 정수 혹은 실수), callback(불러오는 함수)
저것들이 어떤 것인지는 차차 알아가게 될 것입니다. ^^;;
자세한 것은 예전에 한꼬마님이 올리신 게 있으니 그 부분을 보시라고 링크해드립니다.
http://www.nzeo.com/bbs/zboard.php?id=p_study&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=변수&select_arrange=headnum&desc=asc&no=462
자자... 그럼 우리는 다시 혼자 공부하는 법을 알아봐야죠. 누구도 가르쳐 주지 않은... ^^;;
불린형.. 그러니까 True/False 만 존재하는 형태의 진짜 값은 얼마일까요? 실제로 불린이라는 형태는 존재하지 않는 것일지도 모릅니다. 왜냐구요? 다음 문장을 실행시켜보면 이유를 알 수 있습니다.
어떤 결과가 나오는지 보셨죠? 결국 불린이라는 형태는 "1"과 "없다"의 차이일 뿐입니다. false 값은 0이 아닌 "없는" 값... 즉, NULL형입니다. 쉽게 말하면 無라고 보는 거죠. ^^
자... 그럼 integer 정수형입니다. 정수가 뭔지 모르시는 분은 없겠죠?
바로 -1, 0, 1, 3, 4 등을 정수라고 말합니다...라는 정의야 수도 없이 봐왔을테니까... 혼자 공부하기는 그런거 안보고 다른 거를 봅니다. 이미 이쯤되면 알아서 매뉴얼의 Types - Integers 를 펴고 있겠죠? 그럼 매뉴얼에 있는 부분을 옮겨옵니다.
8진수와 16진수의 의미도 쉽습니다. 10진수의 의미가 10이 되면 새로운 자리를 추가하는 것이듯이, 8진수는 8에서, 16진수는 16에서 추가하는 것입니다. 그리고, 숫자가 0부터 9까지 밖에 없기때문에 A(10), B(11), C(12), D(13), E(14), F(15) 와 같이 영문자로 숫자를 추가시켜준 것입니다. 8진수와 16진수를 표현하기 위한 방법은 각각 숫자앞에 숫자0과 숫자0, 영문자x 를 붙이는 방법입니다. 하지만 결국 저장은 10진수로 되기 마련이죠. 다음 소스를 실행해보세요.
결과는 해보시면 알겠죠? ^^;
문자형을 정의할 때는 흔히 큰따옴표(") 를 쓰지만, 실은 이것말고도 두가지 방법이 더 있습니다. 바로 작은따옴표와 heredoc(해석이 안되네요. -_-) 방식입니다.
1. 작은 따옴표 - 매뉴얼에는 간단한 문장을 출력할 때 쓰며, 이스케이프 문자가 큰따옴표일때보다 적다...고 나옵니다. 무슨 의미이신지 모르겠죠? 이스케이프 문자라는 것은 을 의미합니다. 특수한 문자를 표현할 때(예를 들면 줄바꿈같은...) 쓰는 거죠. 다음 문장을 실행해보면 작은 따옴표의 의미를 아실 겁니다.
큰 따옴표에서는 n이 줄바꿈으로 인식이 되지만 작은따옴표로 묶은 문장에서는 그렇지 않습니다. 작은 따옴표에서 쓰이는 이스케이프 문자는 ' 으로 문장안에서 작은 따옴표를 표현하는데 쓰입니다.
2. 큰 따옴표 - 다양한 이스케이프 문자를 지원합니다.
n - 줄바꿈, r - 캐리지 리턴, t - 탭, - 을 표현함, $ - $를 표현함, " - "를 표현함
100 - 8진수로 해당하는 아스키 코드를 출력(8진수 100 = 10진수 64 = 문자 @)
x44 - 16진수로 해당하는 아스키 코드를 출력(16진수 44 = 10진수 68 = 문자 D)
3. Heredoc - <<< 로 지정한 문자가 나올때까지 전부 문자열로 인식합니다.
이제는 오늘의 과제... ^^;;
바로 위 문장에서 $str을 사용하지 않고 바로 echo 문을 heredoc 방식으로 출력해보세요. 참고로. 큰 따옴표일때는... echo "This is a test"; 와 같이 출력할 수 있었습니다.
PHP에서 사용되는 변수형은,
boolean(불린형 - true/false), integer(정수형 - 1,2,3,4), float(실수형 - 1.2323, 2.44133, 4.5542 - double 과 같음), string(문자열형 - "행복한고니", "Test")
array(배열형), object(객체형)
resource(리소스), NULL(널)
그리고 매뉴얼에서 함수정의형으로 사용하는...
mixed(반환값의 형태가 여러종류), number(숫자형 - 정수 혹은 실수), callback(불러오는 함수)
저것들이 어떤 것인지는 차차 알아가게 될 것입니다. ^^;;
자세한 것은 예전에 한꼬마님이 올리신 게 있으니 그 부분을 보시라고 링크해드립니다.
http://www.nzeo.com/bbs/zboard.php?id=p_study&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&keyword=변수&select_arrange=headnum&desc=asc&no=462
자자... 그럼 우리는 다시 혼자 공부하는 법을 알아봐야죠. 누구도 가르쳐 주지 않은... ^^;;
불린형.. 그러니까 True/False 만 존재하는 형태의 진짜 값은 얼마일까요? 실제로 불린이라는 형태는 존재하지 않는 것일지도 모릅니다. 왜냐구요? 다음 문장을 실행시켜보면 이유를 알 수 있습니다.
<?php
$bool = true; //true, false 는 예약어이며, 대소문자를 구분하지 않습니다.
echo $bool;
?>
$bool = true; //true, false 는 예약어이며, 대소문자를 구분하지 않습니다.
echo $bool;
?>
어떤 결과가 나오는지 보셨죠? 결국 불린이라는 형태는 "1"과 "없다"의 차이일 뿐입니다. false 값은 0이 아닌 "없는" 값... 즉, NULL형입니다. 쉽게 말하면 無라고 보는 거죠. ^^
자... 그럼 integer 정수형입니다. 정수가 뭔지 모르시는 분은 없겠죠?
바로 -1, 0, 1, 3, 4 등을 정수라고 말합니다...라는 정의야 수도 없이 봐왔을테니까... 혼자 공부하기는 그런거 안보고 다른 거를 봅니다. 이미 이쯤되면 알아서 매뉴얼의 Types - Integers 를 펴고 있겠죠? 그럼 매뉴얼에 있는 부분을 옮겨옵니다.
<?php
$a = 1234; # 10진수
$a = -123; # 음수
$a = 0123; # 8진수
$a = 0x1A; # 16진수
?>
$a = 1234; # 10진수
$a = -123; # 음수
$a = 0123; # 8진수
$a = 0x1A; # 16진수
?>
8진수와 16진수의 의미도 쉽습니다. 10진수의 의미가 10이 되면 새로운 자리를 추가하는 것이듯이, 8진수는 8에서, 16진수는 16에서 추가하는 것입니다. 그리고, 숫자가 0부터 9까지 밖에 없기때문에 A(10), B(11), C(12), D(13), E(14), F(15) 와 같이 영문자로 숫자를 추가시켜준 것입니다. 8진수와 16진수를 표현하기 위한 방법은 각각 숫자앞에 숫자0과 숫자0, 영문자x 를 붙이는 방법입니다. 하지만 결국 저장은 10진수로 되기 마련이죠. 다음 소스를 실행해보세요.
<?php
$a = 0x1A;
echo $a;
?>
$a = 0x1A;
echo $a;
?>
결과는 해보시면 알겠죠? ^^;
문자형을 정의할 때는 흔히 큰따옴표(") 를 쓰지만, 실은 이것말고도 두가지 방법이 더 있습니다. 바로 작은따옴표와 heredoc(해석이 안되네요. -_-) 방식입니다.
1. 작은 따옴표 - 매뉴얼에는 간단한 문장을 출력할 때 쓰며, 이스케이프 문자가 큰따옴표일때보다 적다...고 나옵니다. 무슨 의미이신지 모르겠죠? 이스케이프 문자라는 것은 을 의미합니다. 특수한 문자를 표현할 때(예를 들면 줄바꿈같은...) 쓰는 거죠. 다음 문장을 실행해보면 작은 따옴표의 의미를 아실 겁니다.
<?php
header("Content-Type: text/plain"); //이 부분은 신경쓰지 마세요.
$str1 = 'This is a Test n including new line.';
$str2 = "This is a Test n including new line.";
echo $str1;
echo $str2;
?>
header("Content-Type: text/plain"); //이 부분은 신경쓰지 마세요.
$str1 = 'This is a Test n including new line.';
$str2 = "This is a Test n including new line.";
echo $str1;
echo $str2;
?>
큰 따옴표에서는 n이 줄바꿈으로 인식이 되지만 작은따옴표로 묶은 문장에서는 그렇지 않습니다. 작은 따옴표에서 쓰이는 이스케이프 문자는 ' 으로 문장안에서 작은 따옴표를 표현하는데 쓰입니다.
2. 큰 따옴표 - 다양한 이스케이프 문자를 지원합니다.
n - 줄바꿈, r - 캐리지 리턴, t - 탭, - 을 표현함, $ - $를 표현함, " - "를 표현함
100 - 8진수로 해당하는 아스키 코드를 출력(8진수 100 = 10진수 64 = 문자 @)
x44 - 16진수로 해당하는 아스키 코드를 출력(16진수 44 = 10진수 68 = 문자 D)
3. Heredoc - <<< 로 지정한 문자가 나올때까지 전부 문자열로 인식합니다.
<?php
header("Content-Type: text/plain"); //이 부분은 신경쓰지 마세요.
$str = <<<END
여러줄도 가능하고...
큰 따옴표도 가능하고 "
작은 따옴표(')도 가능합니다.
큰 따옴표에서 쓰인 이스케이프 문자도 모두 사용가능합니다.
END;
echo $str;
?>
header("Content-Type: text/plain"); //이 부분은 신경쓰지 마세요.
$str = <<<END
여러줄도 가능하고...
큰 따옴표도 가능하고 "
작은 따옴표(')도 가능합니다.
큰 따옴표에서 쓰인 이스케이프 문자도 모두 사용가능합니다.
END;
echo $str;
?>
이제는 오늘의 과제... ^^;;
바로 위 문장에서 $str을 사용하지 않고 바로 echo 문을 heredoc 방식으로 출력해보세요. 참고로. 큰 따옴표일때는... echo "This is a test"; 와 같이 출력할 수 있었습니다.
댓글 8
-
행복한고니
2003.04.09 19:21
-
산나라
2003.04.09 18:45
문자열을 변수에 집어넣을때, 젤 첫 글자가 숫자일 경우 작은따옴표로 묶으면 오류가 나던데 ;;
[툭하면 당하는 오류죠..ㅠ_ㅠ]
작은따옴표와 큰따옴표의 차이가 저 설명만으로는 부족하네요 ;; -
TheMics
2003.04.09 19:06
산나라//가장 큰 차이라면 변수 출력 관련 문제일 겁니다. -
TheMics
2003.04.09 19:09
자세히 말씀드리면,
<?
$str = "111111";
echo "aa $str";
?>
이런 소스에서는 당연히 aa 111111이라고 출력될 겁니다. 하지만
<?
$str = "111111";
echo 'aa $str';
?>
이 소스에서는 aa $str이라고 출력됩니다. $str을 str이라는 변수의 값이 아니라 $str이라는 문자열로 보는 것이지요.
즉, echo "aa $str"; 와 같은 결과가 나오게 됩니다.
작은 따옴표 안에서의 모든 내용은 다 문자열로 인식합니다. 메타 문자이던, 아니던간에 상관없이요(다만 '를 출력할 때만은 를 붙여줘야 합니다) -
TheMics
2003.04.09 19:13
그리고 heredoc로 문자열을 쓸 때 역시 메타문자를 일반 문자로 봅니다. -
TheMics
2003.04.09 19:49
저 문제는 제가 테스트해봐도 문제없습니다; -
LikeRiver
2003.05.12 08:33
메뉴얼에서 이스케이프라길래 ESC 키를 보고 한참 고민했네요. -
정용우
2005.12.31 03:50
=_ =;; likeriver님 너무깜찍함 ㅋ
제목 | 글쓴이 | 날짜 |
---|---|---|
군대간 친구 남은날짜 계산하기 [6] | xacdo | 2003.04.27 |
유용한 일반 함수 모음;ㅁ; [11] | TheMics | 2003.04.23 |
노프레임+프레임없이 접근막기+게시물 링크하기 [3] | teslaMINT | 2003.04.20 |
PHP 혼자 공부하기 - 12 :: SQL문 [6] | 행복한고니 | 2003.04.20 |
데이터베이스, PHP를 만나면「알짜 사이트로 부활!」 [1] | .maya | 2003.04.18 |
[mics'php] 2. PHP 사용 시스템 구축하기 [3] | TheMics | 2003.04.17 |
[mics'php] 1. PHP란? [8] | TheMics | 2003.04.16 |
PHP 혼자 공부하기 - 11 :: 정규식 실전예제 [9] | 행복한고니 | 2003.04.16 |
PHP 혼자 공부하기 - 10 :: 정규식 패턴 문법 [3] | 행복한고니 | 2003.04.15 |
PHP 혼자 공부하기 - 9 :: 정규식 함수 [3] | 행복한고니 | 2003.04.14 |
PHP 혼자 공부하기 - 8 :: 시간다루기 [18] | 행복한고니 | 2003.04.13 |
PHP 혼자 공부하기 - 7 :: 제어문과 함수 [7] | 행복한고니 | 2003.04.12 |
[mics'php] 들어가기 전에 [1] | TheMics | 2003.04.11 |
PHP 혼자 공부하기 - 6 :: 연산자 [7] | 행복한고니 | 2003.04.11 |
PHP 혼자 공부하기 - 5 :: 변수 [4] | 행복한고니 | 2003.04.10 |
PHP 혼자 공부하기 - 4 :: 미리 정의된 변수 [13] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 3 :: 변수형 [8] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 2 :: PHP의 시작 [9] | 행복한고니 | 2003.04.09 |
PHP 혼자 공부하기 - 1 :: 준비물 [3] | 행복한고니 | 2003.04.09 |
개판 오분전 세션 - 7 [10] | 미친개 | 2003.04.08 |
문자열을 변수에 집어넣을때, 젤 첫 글자가 숫자라는 말은...
$str = '123ABC';
와 같은 경우란 말인가요? 그 경우에는 오류가 없는데요?
제가 실행해본 소스를 알려드리면...
<?php
$str = '123ABC';
echo $str;
?>
이거였는데 아무런 이상없이 작동이 잘 되었습니다. PHP 4.1.2 버전입니다. 게다가 PHP 매뉴얼에도 언급되어있지 않은 오류인데요?