일단 먼저 코드를 확인해보면...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
<? $na = 0; $age = 13; if ($na == 1) { echo( "나" ); } else { echo( "나아님" ); } if ($age > 13) { echo( "13살 넘었어요" ); } ?> |
자 위에 코드를 보실까요? $na 라는 변수엔 0을 넣어줬구요 $age라는 변수엔 13을 넣었습니다.
그리고 그다음에 이제 배우실 if문이 나오네요. 자 그럼 $na 라는 변수에 1이 들어가면 본인인
것이고 1이 아니라면 다른사람 이라고 합시다.
그럼 1일때는 나라고 표시해줘야하고 1이 아니면 내가 아리라고 표시를 해줘야겠죠?
그럴때 쓰는게 저 if문입니다. if($na == 1) 을 보시면 $na라는 변수가 1과 같으면
이라는 뜻이에요 즉 if(조건문) 이 참이면 if(조건문){ } 저 괄호부분 { 여기서 부터
} 여기까지를 실행하게 되어있죠 .. 그럼 조건문을 알아볼께요...
if($na == 1) 에 == 부분은 좌변($na) 과 우변(1) 이 같으면 이라는 뜻입니다.
그러면 $na와 1이 같으면이 되겠죠... 그다음 같으면이 있으면 같지 않으면도 있어야
합니다.. 같이 않다는 것은 != 이런식으로 표현을 해줍니다. 같이않다는 뜻..
다음으로 크다 작다 도있어야겠죠? 이건 우리가 초등학교때 배운 산수와 똑같답니다.
< 이건 좌변이 우변보다 작다 라는 표현이구요 >이건 좌변이 우변보다 크다 라는 표현입니다.
미만 초과 의 표현이라고 보시면 되겠네요.
다음으로 이상 이하의 표현도 있어야겠죠.. 좌변이 우면보다 작거나 같다 라는 표현은 <= 이걸
로 해줍니다. 그리고 좌변이 우변보다 크거나 같다 라는 표현은 >= 이걸 씁니다..
그럼 조건문이 이해가 가시죠? ㄷㄷㄷㄷㄷ
자 다시 코드로 돌아가서 보겠습니다. $na 가 1과 같은 값이라면 그담 중괄호 부분을 실행합니다.
나 라고 뿌려줘라 라는뜻이죠... 그리고 중괄호 끝나고 그다음을 보시죠 else 라고 되어있죠?
그부분은 조건문이 참이 아니라면 그 뒤에 오는 { } 부분을 실행해라 입니다.
그럼 $na 가 1과 같은값이면 나 라는 글짜가 뿌려지고 1과 같은값이 아니면 나아님 이라는 값이
뿌려집니다.. 이해가시죠?
그렇다면 두번째 if문을 보죠. 만약 $age라는 값이 13보다 크면 13살넘었어요 라는 글짜를 뿌려주고
아니라면 아무것도 안하게 됩니다... 참 쉽죠? ㅋㅋ
그럼 다음 두번째 소스를 보시죠
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
<? $na = 1; $age = 14; $sex = "man" ; if ($sex == "man" & $age > 13) { echo( "13살 넘은 남자입니다" ); } else if ($age > 13 | $na == 1) { echo( "13살이 넘었거나 주인입니다." ); } else { echo( "아무 해당사항이 없습니다." ); } ?> |
조건문을 2개를 주는 법을 공부하겠습니다.. 13살넘은 남자를 구분하고 싶다면?
13살을 넘어야 하고 그리고 남자여야 겠죠?
물론 if문 안에 또 if문을 써주고 실행해도 상관은 없습니다만... 한줄로 쓸수있는 방법
입니다. 한번 보시죠 ㅎ
if($sex == "man" & $age > 13) 이부분 보시면 조건이 2개 입니다
$sex 변수가 man과 같을때 한개 하고 $age 변수가 13보다 클때 입니다
근데 그 중간에 & 표시가 ㅎㅎ 저건 무슨뜻이냐면 그리고 라고 보시면됩니다.
즉 $sex변수가 man과 같아야합니다 그리고 $age 변수는 13보다 커야 합니다.
라는 뜻이죠. 즉 2가지 조건문을 동시에 만족했을때 뒤에 { }안의 명령어를 실행하라
라는 구문입니다. 그리고 else if문이 있습니다. 위에 if문이 거짓이면 else 문 뒤에 { }를 실행
하는데 조건을 또 줄수가 있답니다.. 즉 if문이 거짓이면 else if문 안의 조건문으로 다시 한번
비교를 해줍니다.. else if문은 몇개가 붙더라도 상관없습니다. else if문 아래 else if문이 붙는다면
if문도 거짓이고 첫번째 else if 문도 거짓일때 그다음 else if 문의 조건을 비교하게 됩니다..
그럼 소스 설명을 한번 다시 볼까요?
if($sex == "man" & $age > 13) 이부분이 참이 아니면 else if($age > 13 | $na == 1) 이부분을
비교해서 참이면 바로뒤에 { echo("13살이 넘었거나 주인입니다."); } 이부분을 실행하라 라는 뜻
입니다. 즉 $sex 변수가 man과 같고 그리고 $age변수가 13보다 크지 않으면 다음 $age변수가 13보다
큰지 또는 $na변수가 1값인지 비교해서 참이면 뒤에 { echo("13살이 넘었거나 주인입니다."); }
이부분을 실행 해라 라는 뜻입니다.
자 근데 여기서 else if($age > 13 | $na == 1) 이부분에서 처음보는 문자가있죠? 역시 조건문은
2개인데 구분해주는게 다르네요 | 문자의 뜻은 또는 입니다.. 즉 $age > 13이라는 조건문과
$na == 1 이라는 조건문중에 하나라도 참이면 그 뒷부분을 실행하라입니다..
&는 두개다 참이어야 했지만 | 는 둘중 하나만 참이면 뒷부분을 실행합니다. 뒷부분이라하면
물론 바로뒤에 붙는 { } 이부분의 안의 실행문을 실행하는거지요.
참 쉽죠? ㄷㄷㄷㄷ 자 그럼 마지막 뒷부분은 위의 두가지 if문과 else if문이 둘다 참이아니면
else 문의 뒤에있는 { } 안의 실행문을 실행하게 됩니다.
if문 쉽죠? ㅋㅋ
이해를 다 하셨으리라고 봅니다. 그럼 if문을 줄여서 쓰는 법을 알아보겠습니다..
삼항연산자라는것을 쓸꺼에요 소스를 한번 보시죠
1
2
3
4
5
6
7
8
9
10
11
12
13 |
<? $na = 1; if ($na == 1) { echo( "aaa" ); } else { echo( "bbb" ); } ?> |
자 위에 구문은 이제 이해가 가시죠? 그럼 저 구문을 삼항연산자로 줄여서 써보겠습니다.
1
2
3
4 |
<? $na = 1; echo( ($na == 1)? "aaa" : "bbb" ); ?> |
자 볼까요? 이상한 머시기가 주루룩있죠? ㅋ 문법은 이렇습니다.
(조건문)?"참일때값":"거짓일때값";
이해가 가시나요?
해석을 해보면 echo() 는 뿌려줘라 이고. ($na == 1) 이부분이 조건문입니다.. $na 가 1이면
그뒤에부분은 ?"aaa" 조건문($na == 1)이 참이면 aaa
뒤에 :"bbb" 거짓이면 bbb 라는 뜻입니다 echo문 안에 있으니까 뿌려줘라 겠지요..
실행을 해보시면 이해가 빠르실겁니다. 보통은 변수하나를 주고 그 변수에 값을리턴받을때 씁니다만..
위와 같은식으로도 사용가능하더라구요 .. 좀더 이해하기 쉽게 위에 구문을 한번 풀어보겠습니다.
1
2
3
4
5
6 |
<? $na = 1; $var_echo = ($na == 1)? "aaa" : "bbb" ; echo($var_echo); ?> |
그나마 이해하기 좀 쉬우시죠?
저걸 삼항연산자라고 합니다.. 다른소스 보시다가 저런구문이 나오면 당황하지 마시길 삼항연산자는
if문을 줄여서 쓴거락 생각하시면 됩니다.. 삼항연산자를 가지고 else if 문을 사용해볼까요?
1
2
3
4
5
6 |
<? $na = 3; $var_echo = ($na == 1)? "aaa" :(($na == 2)? "bbb" : "ccc" ); echo(var_echo); ?> |
자 소스를 보시면 삼항연산자 안에 또 괄호를 주고 다시 삼항연산자를 주었습니다..
즉 $na가 1일때는 aaa를 $var_echo에 넣어주고 아니면 $na 가 2이면 $var_echo에 bbb 를 넣어주고
그것도 아니면 ccc를 넣어줘라 라는 뜻입니다..
조건문 안에 조건문을 주었어요... 근데 보통은 else if문이 필요한 상황이라면 삼항연산자보단
else if 문을 써주는게 안햇갈린다는 ㅋㅋ 그냥 if문을 한번만 쓸때 사용하도록 하세요...
아 이로서 if문 관련된 제어문들 설명이 끝났습니다... 어떻게 이해는 잘가셨느지?
이글을 읽으시는 분들이 적은건지?? 아님 제가 설명을 열라 잘하는건지 궁금해 하시는 분들 이 없네요 ㅋㅋㅋ
자 다음번엔 또 다른 제어문을 공부해보도록 할께요 .. 제어문은 몇개 되지 않아요
그것만 잘 익히셔도 플밍은 금방 익히실수있을듯... 자 그럼 열공~
'IT > PHP' 카테고리의 다른 글
[PHP] php 연산자 (0) | 2011.12.18 |
---|---|
[PHP] 세션(session) 이란 ? (0) | 2011.11.24 |
[PHP] return, break, continue (0) | 2011.11.18 |
[PHP] 쌩초보자를 위한 PHP 프로그래밍 ( MySQL 연동) (0) | 2011.11.17 |
[PHP] MySQL Fetch 함수 (0) | 2011.11.16 |