웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
PHP 익히기 2
2003.06.10 02:07
레벨2에 도전한다. PHP익히기 2입니다.
우선 익히기 1에서 나간 가벼운 문제 기억하시나요?
<?
echo ("안녕하세요? php스크립트 1번놈입니다.<br>");
echo ("안녕하세요? php스크립트 2번놈이지라요. <br>");
echo ("안녕하셔와요? 지는 php스크립트 3번놈입니다요.");
?>
이건 어떻게 출력 될까요?
답.
안녕하세요? php스크립트 1번놈입니다.
안녕하세요? php스크립트 2번놈이지라요.
안녕하셔와요? 지는 php스크립트 3번놈입니다요.
이대로 출력되겠죠? 만약 아니라고 생각하셨던분은 다시 익히기 1를 읽으세요. 강요!
자 익히기2에서는 뭘할껀가???
익히기2에는 조금 레벨이 높은 녀석들이 등장하는데 여러분 바짝 긴장들 하세요.
익히기 1에서는 우리가 변수에 대해 알아 보았었죠?
변수를 알았으니 다른녀석들도 알아 볼까요??
1. 변수타입을 알아보자.
익히기 1에서 배운것 처럼 변수에는 정수형,실수형,문자열,배열,객체등이 있었는데요.
실제로는 어떻게 사용되느냐겠죠?
우선 타입에 대해 알아 보자구요.
정수형 - (int),(integer)
실수형 - (double),(real),(flot)
문자열 - (string)
배 열 - (array)
객 체 - (object)
왜!! 대체 왜 저런녀석들을 내가 사용해야 하나? 궁금하시죠? 저도 궁금합니다.
자 왜 사용할까요?
가볍게 예를 사용해 보겠습니다.
$a = 350.13 이라고 가정합시다.
보시면 아시겠지만 실수형이죠?? 근데 저는 출력할때 정수형으로 바꾸고 싶은거예요!
350만 출력하게는 못할까? 바로 그래서 저런녀석들이 등장을 한거랍니다.
자 예를 들어 볼께요.
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("실수형 var_a의 값은 $var_a 이고 변수형은 $type형 입니다<br>");
?>
가볍게 이렇게 보자구요.
대부분 여러분들이 익히기 1을 보셨다면 이런 답을 원하셨을겁니다.
- 실수형 var_a의 값은 350.13이고 변수형은 double형입니다.
하지만 실제로 보면
- 실수형 var_a의 값은 350.13이고 변수형은 형입니다.
라고 나온다 말입니다. 웃기죠 저도 참 웃기더군요.
자 세밀하게 집고 넘어가자구요
$var_a의 값은 350.13입니다 역시 실수형(double) 맞습니다. 맞구요.
$type=gettype($var_a); 새로운 녀석이 등장했습니다. 저녀석은 뭐하는 놈이래?
자 알아 볼까요 gettype <--- 변수의 형식을 알아 보는 놈이라 생각하시면 될것 같아요
$type는 gettype(형식을 알아보자) ($var_a)($var_a에 대한 형식을)
그럼 이해가 되시겟죠?
근데 분명이 저는 위에 echo중에 변수형은 $type형입니다. 라고 넣었으면 double가 나와야 하지
않을까요???? 이따 힘드어지는군요. 저도 힘들어집니다.
자 왜 그럴까요?
그건 바로 문자열과 변수이름 때문이라네요. 변수이름 type와 일반 문자열을 구분하기 위해서
{}이걸 사용한다구 하네요. 그럼 답은 나오겠죠?
만약에 $type형과 같이 부분하지 않고 붙여서 사용을 하면 "$type형"을 하나의 변수로 인식하게 되어서
아무런 값도 나오지 않는겁니다 왜냐??? $type형 = gettype($var_a); 라는게 없죠?
결국 변수형은 $type형 입니다.에서 $type으로 인식하는게 아니라 $type형 으로 인식하는거죠.
그래서 그걸 방지하기 위해서 {$type}형 입니다 라고 해주는 거라는군요
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 $type형 입니다<br>");
?>
위에 내용을
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형 입니다<br>");
?>
바꿔주면 될것 같습니다.
자 변수의 형식이 나오죠?? 직접 해보세요.
다른 문장으로 더 알아보자구요
<?
$var_a=350.13;
$var_a=(int)$var_a; // 새로운 녀석 등장.
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형입니다<br>");
?>
여러분 위에걸 보고 생각해 보세요 결과물을..
만약 php익히기를 막 따라 하신 분들은 이런 결과를 얻으실수 있을꺼예욤
-실수형 var_a의 값은 350.13이고 변수형은 double형입니다.
하지만 새로운 녀석이 중간에서 뭔가 꿍꿍이로 작업을 했다는 겁니다.
자 알아 볼까요 뭔 짓꺼리를 했나?
$var_a=(int)$var_a;
$var_a는 (int) <-- 정수형 $var_a를
잘 이해가 안가시죠? 이해가 가셨다면 이해가신분은 다른 세계에 살고 계십니다.?
2003년인데 이해가 가버렸으니 2004년도에 사시겠군요 -_ㅡ;;
자 잡담은 넘어가고 위에를 보시면 아시겟지만 $var_a=350.13 입니다 실수형이죠
다 머리 좋으신 분들은 이해가 되셨을 겁니다.
$var_a=(int)$var_a <-- 이말은 $var_a의 값을 정수로 바꿔라라고 생각하셔도 됩니다.
따라서 결과물은 실수형 var_a의 값은 350이고 변수형은 integer형입니다.
라고 나오겠죠.
근데 여기서 잠깐!
var_a의 값은 350.13아닙니까?라구 물으시는 분이 계시겠죠? 네 맞습니다 350.13입니다.
하지만 var_a=350.13아래에 다시 $var_a=(int)... 넣어졌습니다 따라서 var_a=350.13을 인식
하는게 아니라 $var_a=(int)$var_a 위에 $var_a값 350.13을 인식하게 되는거죠.
예를 더 들어 보겠습니다.
<?
$var_a=350.13; //임의로 이녀석을 var_a 1번놈
$var_a=(int)$var_a; // 이녀석을 var_a 2번놈
$var_a=99999; //이녀석을 var_a 3번놈
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형입니다<br>");
?>
이렇게 하면 실수형은 var_a의 값은 99999(3번놈)이고 변수형은 integer형입니다. 라고 나오겠죠?
이해가 되셨는지요?
이해가 안가신다구요 계속 이해가 가실때까지 하세요 이해가 안가시면 아래의 글을 읽지 마시고
이해가 가실때 까지 반복해 주세요.
자 우리 다른 변환을 배워 볼까요?
<?
$var_a=350.13;
settype($var_a,"int"); // settype라는 새로운 녀석 등장
$type=gettype($var_a);
echo ("var_a의 값은 $var_a이고 변수형은 {$type}형입니다<br>");
?>
가볍게 설명할께요. settype () 함수를 이용해 달리 표현하는 것인데요 $var_a를 integer(정수)형으로
형변환을 한다 이런것이랍니다.
결국 settype($var_a,"double"); 이것과 $var_a=(double)$var_a; 과 같다고 생각하시고 넘어갈께요
위에 내용의 핵심은 위에 내용과 같이 형변환이나 settype()의 함수를 이용해서 프로그래머가 강제적으로 원
하는 변수의 변수형을 결정할수 있다는 겁니다.
자 여기서 문제 나갑니다.
만약 $a=99534.492일때 출력물을
a의 값은 99534이고 변수형은 integer형입니다.
라고 나오게 하고 싶습니다.
답은 익히기 3에서 알려 드리겠습니다.
자 새로 등장한 녀석들 별거 아니죠?? 내 허접들입니다 이글을 읽는 님이 더욱 레벨이 높군요.
자 익히기 2를 끝내겠습니다.
왜 더 나가지 않느냐라는 질문을 더지시겠지만 제가 시간이 없어서 그런게 아닙니다.
하나 하나 익혀 나가는게 중요함으로 하나를 완벽히 끝내주시기 바랍니다.
지금까지 잘 따라 오신분은 레벨2입니다.
우선 익히기 1에서 나간 가벼운 문제 기억하시나요?
<?
echo ("안녕하세요? php스크립트 1번놈입니다.<br>");
echo ("안녕하세요? php스크립트 2번놈이지라요. <br>");
echo ("안녕하셔와요? 지는 php스크립트 3번놈입니다요.");
?>
이건 어떻게 출력 될까요?
답.
안녕하세요? php스크립트 1번놈입니다.
안녕하세요? php스크립트 2번놈이지라요.
안녕하셔와요? 지는 php스크립트 3번놈입니다요.
이대로 출력되겠죠? 만약 아니라고 생각하셨던분은 다시 익히기 1를 읽으세요. 강요!
자 익히기2에서는 뭘할껀가???
익히기2에는 조금 레벨이 높은 녀석들이 등장하는데 여러분 바짝 긴장들 하세요.
익히기 1에서는 우리가 변수에 대해 알아 보았었죠?
변수를 알았으니 다른녀석들도 알아 볼까요??
1. 변수타입을 알아보자.
익히기 1에서 배운것 처럼 변수에는 정수형,실수형,문자열,배열,객체등이 있었는데요.
실제로는 어떻게 사용되느냐겠죠?
우선 타입에 대해 알아 보자구요.
정수형 - (int),(integer)
실수형 - (double),(real),(flot)
문자열 - (string)
배 열 - (array)
객 체 - (object)
왜!! 대체 왜 저런녀석들을 내가 사용해야 하나? 궁금하시죠? 저도 궁금합니다.
자 왜 사용할까요?
가볍게 예를 사용해 보겠습니다.
$a = 350.13 이라고 가정합시다.
보시면 아시겠지만 실수형이죠?? 근데 저는 출력할때 정수형으로 바꾸고 싶은거예요!
350만 출력하게는 못할까? 바로 그래서 저런녀석들이 등장을 한거랍니다.
자 예를 들어 볼께요.
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("실수형 var_a의 값은 $var_a 이고 변수형은 $type형 입니다<br>");
?>
가볍게 이렇게 보자구요.
대부분 여러분들이 익히기 1을 보셨다면 이런 답을 원하셨을겁니다.
- 실수형 var_a의 값은 350.13이고 변수형은 double형입니다.
하지만 실제로 보면
- 실수형 var_a의 값은 350.13이고 변수형은 형입니다.
라고 나온다 말입니다. 웃기죠 저도 참 웃기더군요.
자 세밀하게 집고 넘어가자구요
$var_a의 값은 350.13입니다 역시 실수형(double) 맞습니다. 맞구요.
$type=gettype($var_a); 새로운 녀석이 등장했습니다. 저녀석은 뭐하는 놈이래?
자 알아 볼까요 gettype <--- 변수의 형식을 알아 보는 놈이라 생각하시면 될것 같아요
$type는 gettype(형식을 알아보자) ($var_a)($var_a에 대한 형식을)
그럼 이해가 되시겟죠?
근데 분명이 저는 위에 echo중에 변수형은 $type형입니다. 라고 넣었으면 double가 나와야 하지
않을까요???? 이따 힘드어지는군요. 저도 힘들어집니다.
자 왜 그럴까요?
그건 바로 문자열과 변수이름 때문이라네요. 변수이름 type와 일반 문자열을 구분하기 위해서
{}이걸 사용한다구 하네요. 그럼 답은 나오겠죠?
만약에 $type형과 같이 부분하지 않고 붙여서 사용을 하면 "$type형"을 하나의 변수로 인식하게 되어서
아무런 값도 나오지 않는겁니다 왜냐??? $type형 = gettype($var_a); 라는게 없죠?
결국 변수형은 $type형 입니다.에서 $type으로 인식하는게 아니라 $type형 으로 인식하는거죠.
그래서 그걸 방지하기 위해서 {$type}형 입니다 라고 해주는 거라는군요
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 $type형 입니다<br>");
?>
위에 내용을
<?
$var_a=350.13;
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형 입니다<br>");
?>
바꿔주면 될것 같습니다.
자 변수의 형식이 나오죠?? 직접 해보세요.
다른 문장으로 더 알아보자구요
<?
$var_a=350.13;
$var_a=(int)$var_a; // 새로운 녀석 등장.
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형입니다<br>");
?>
여러분 위에걸 보고 생각해 보세요 결과물을..
만약 php익히기를 막 따라 하신 분들은 이런 결과를 얻으실수 있을꺼예욤
-실수형 var_a의 값은 350.13이고 변수형은 double형입니다.
하지만 새로운 녀석이 중간에서 뭔가 꿍꿍이로 작업을 했다는 겁니다.
자 알아 볼까요 뭔 짓꺼리를 했나?
$var_a=(int)$var_a;
$var_a는 (int) <-- 정수형 $var_a를
잘 이해가 안가시죠? 이해가 가셨다면 이해가신분은 다른 세계에 살고 계십니다.?
2003년인데 이해가 가버렸으니 2004년도에 사시겠군요 -_ㅡ;;
자 잡담은 넘어가고 위에를 보시면 아시겟지만 $var_a=350.13 입니다 실수형이죠
다 머리 좋으신 분들은 이해가 되셨을 겁니다.
$var_a=(int)$var_a <-- 이말은 $var_a의 값을 정수로 바꿔라라고 생각하셔도 됩니다.
따라서 결과물은 실수형 var_a의 값은 350이고 변수형은 integer형입니다.
라고 나오겠죠.
근데 여기서 잠깐!
var_a의 값은 350.13아닙니까?라구 물으시는 분이 계시겠죠? 네 맞습니다 350.13입니다.
하지만 var_a=350.13아래에 다시 $var_a=(int)... 넣어졌습니다 따라서 var_a=350.13을 인식
하는게 아니라 $var_a=(int)$var_a 위에 $var_a값 350.13을 인식하게 되는거죠.
예를 더 들어 보겠습니다.
<?
$var_a=350.13; //임의로 이녀석을 var_a 1번놈
$var_a=(int)$var_a; // 이녀석을 var_a 2번놈
$var_a=99999; //이녀석을 var_a 3번놈
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형입니다<br>");
?>
이렇게 하면 실수형은 var_a의 값은 99999(3번놈)이고 변수형은 integer형입니다. 라고 나오겠죠?
이해가 되셨는지요?
이해가 안가신다구요 계속 이해가 가실때까지 하세요 이해가 안가시면 아래의 글을 읽지 마시고
이해가 가실때 까지 반복해 주세요.
자 우리 다른 변환을 배워 볼까요?
<?
$var_a=350.13;
settype($var_a,"int"); // settype라는 새로운 녀석 등장
$type=gettype($var_a);
echo ("var_a의 값은 $var_a이고 변수형은 {$type}형입니다<br>");
?>
가볍게 설명할께요. settype () 함수를 이용해 달리 표현하는 것인데요 $var_a를 integer(정수)형으로
형변환을 한다 이런것이랍니다.
결국 settype($var_a,"double"); 이것과 $var_a=(double)$var_a; 과 같다고 생각하시고 넘어갈께요
위에 내용의 핵심은 위에 내용과 같이 형변환이나 settype()의 함수를 이용해서 프로그래머가 강제적으로 원
하는 변수의 변수형을 결정할수 있다는 겁니다.
자 여기서 문제 나갑니다.
만약 $a=99534.492일때 출력물을
a의 값은 99534이고 변수형은 integer형입니다.
라고 나오게 하고 싶습니다.
답은 익히기 3에서 알려 드리겠습니다.
자 새로 등장한 녀석들 별거 아니죠?? 내 허접들입니다 이글을 읽는 님이 더욱 레벨이 높군요.
자 익히기 2를 끝내겠습니다.
왜 더 나가지 않느냐라는 질문을 더지시겠지만 제가 시간이 없어서 그런게 아닙니다.
하나 하나 익혀 나가는게 중요함으로 하나를 완벽히 끝내주시기 바랍니다.
지금까지 잘 따라 오신분은 레벨2입니다.
댓글 9
-
Soft119™
2003.06.10 20:34
-
작은바람
2003.06.10 20:49
php에서는 일정 범위를 넘어가면 자동으로 정수적 승격이 일어납니다
예를 들어 32769가 되면 그 윗단계로 넘어가겟져
물론 최대수를 넘어가면 overflow가 일어나겟지만 -
위쯔
2003.06.14 18:15
질문인데요 settype에서
실습으로 settype($a,"int");
이렇게 주니까 Warning: settype: invalid type .... 이런식의 오류가 뜨네요;;
그래서 이걸 settype($a,"integer"); 이렇게 바꿔주니까 제대로 나와요.
월래 settype를 쓸때는 변수형을 줄인것말고 월래의 변수형을 써야하나요? -
김경재
2003.07.03 13:45
저도 그렇군요 풀네임을 써줘야하나봐여-_-a 차라리 (int)$a가 편할듯 -
김민기
2003.07.03 23:00
배우고는 싶은데 너무어렵다. -
이호
2003.07.09 21:23
<?
$var_a=350.13; //임의로 이녀석을 var_a 1번놈
$var_a=(int)$var_a; // 이녀석을 var_a 2번놈
$var_a=99999; //이녀석을 var_a 3번놈
$type=gettype($var_a);
echo ("var_a의 값은 $var_a 이고 변수형은 {$type}형입니다<br>");
?>
이렇게 하면 실수형은 var_a의 값은 99999(3번놈)이고 변수형은 integer형입니다. 라고 나오겠죠?
이해가 되셨는지요?
라고 하셨는데..var_a 1번놈하고 2번놈의 변수값이 적용되지 않은 이유는 무언가요? -
Rundy
2003.07.22 17:24
$var_a 라는 변수에 값이 세번 대입됐네요. 배열이 아닌이상 하나의 값 밖에 갖지 못합니다.
따라서 마지막에 대입시킨 값이 저장 되겠지요. -
Nzero
2003.10.24 21:29
쉽게 말해서 ,
사람 A에게
"너 110해라 ," 했다가 , 또
"너 10001 해라 ," 라고합니다, 그랬다가
"너 290 해라 " 라고 하면 ,
사람은 마지막 말을 기억하겠지요 ,
변수도 같습니다 , -
임용택
2003.12.27 13:17
구리구리님 좋은강의 감사합니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
htmlspecialchars 사용하시는 분들 [5] | holies | 2003.07.11 |
이미 인클루드된 파일은 다시 인클루드하지 않기 [14] | 김병희 | 2003.06.20 |
PHP 익히기 3 [11] | 구리구리 | 2003.06.17 |
PHP 익히기 2 [9] | 구리구리 | 2003.06.10 |
PHP 익히기 1 [24] | 구리구리 | 2003.06.09 |
php 로 기존 문서 포함시키기 [10] | 이성헌 | 2003.06.08 |
체크박스등으로 배열로 변수를 넘길때.. [1] | myself2 | 2003.06.06 |
홈페이지의 내용을 DB에 담기 [15] | 세죠위그이 | 2003.05.30 |
썸네일 자동생성하고 이미지 사이즈 자동 줄이기... [6] | sMokaHallo | 2003.05.21 |
Wake On Lan 기능 사용하기... [3] | sMokaHallo | 2003.05.17 |
스킨 시스템 구축.(1탄 읽어오기) [11] | 씨파개 | 2003.05.13 |
none 과 null 처리 문제 해결법 [5] | 허현승 | 2003.05.12 |
세션파일 크기/만들어진 시간체크해서 정해진 시간이후엔 파일 지우기?;; (라고 써야되낭? ;;) [6] | 다오케이 | 2003.05.12 |
PHP+MSSQL?(수정판) [11] | 씨파개 | 2003.05.10 |
이미지 전용 파일업로드시의 확장자 체크시.. [4] | 특급잠수부 | 2003.05.07 |
mysql_fetch_row n mysql_fetch_array n mysql_fetch_object [4] | sMokaHallo | 2003.05.06 |
if 시리즈 2탄.. ㅡㅡ;; [9] | 씨파개 | 2003.05.05 |
PHP 확장 함수를 이용한 exif 정보 출력 [1] | NoSoRi | 2003.04.30 |
if 시리즈 1탄! [15] | 씨파개 | 2003.04.28 |
ID3v1태그 읽는 함수입니다. [4] | 김승태 | 2003.04.27 |
또는 double 은 위 아래로 한계는 없나요?
-32768 ~ 32767 까지 라든가 하는....