회원가입아이디/비번찾기
실시간 TV
홈으로
php 초보탈출( 제어문 if, else if 문)
13년 전
게시판을 만든다고 쳤을때 글쓴이가 본인글을 보면 수정이라는 버튼이 보이고

다른사람이 그 글을 봤을땐 수정이라는 버튼이 안보이게 만들고 싶다고 가정해 봅시다.

그럼 본인인지 확인이 되어야 할꺼고 본인이면 버튼을 보여주고 본인이 아니라면 버튼을

보여주지 않으면 되겠죠?  

자 저런 일들을 하기 위해서 필요한 제어문이 바로 if문입니다.. 사실 제어문들만 알아도

프로그래밍은 반이상 할수있다고 보시면됩니다.. (개인적인 생각)

그럼 바로 코드를...

<?    
$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살넘었어요 라는 글짜를 뿌려주고

아니라면 아무것도 안하게 됩니다... 참 쉽죠?  

그럼 다음 두번째 소스를 보시죠

<?    
$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문을 줄여서 쓰는 법을 알아보겠습니다..

삼항연산자라는것을 쓸꺼에요 소스를 한번 보시죠

<?    
$na = 1;      
if($na == 1)
{        
echo("aaa");    
}    
else
{        
echo("bbb");    
}  
?>

자 위에 구문은 이제 이해가 가시죠? 그럼 저 구문을 삼항연산자로 줄여서 써보겠습니다.

<?    
$na = 1;    
echo( ($na == 1)?"aaa":"bbb" );
?>

자 볼까요? 이상한 머시기가 주루룩있죠? 문법은 이렇습니다.

(조건문)?"참일때값":"거짓일때값";

이해가 가시나요?

해석을 해보면 echo() 는 뿌려줘라 이고. ($na == 1) 이부분이 조건문입니다.. $na 가 1이면

그뒤에부분은 ?"aaa" 조건문($na == 1)이 참이면 aaa

뒤에 :"bbb" 거짓이면 bbb 라는 뜻입니다 echo문 안에 있으니까 뿌려줘라 겠지요..

실행을 해보시면 이해가 빠르실겁니다. 보통은 변수하나를 주고 그 변수에 값을리턴받을때 씁니다만..

위와 같은식으로도 사용가능하더라구요 .. 좀더 이해하기 쉽게 위에 구문을 한번 풀어보겠습니다.

<?    
$na = 1;          
$var_echo = ($na == 1)?"aaa":"bbb";    
echo($var_echo);
?>

그나마 이해하기 좀 쉬우시죠?  

저걸 삼항연산자라고 합니다.. 다른소스 보시다가 저런구문이 나오면 당황하지 마시길 삼항연산자는

if문을 줄여서 쓴거락 생각하시면 됩니다.. 삼항연산자를 가지고 else if 문을 사용해볼까요?

<?    
$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문을 한번만 쓸때 사용하도록 하세요...

추천추천 : 374 추천 목록
번호 제목
2,885
 input 입력 필드 앞뒤 공백 실시간 제거
2,884
 Placeholder 포커스시 감추기
2,883
 MySQL 중복된 데이터를 삭제
2,882
 MySQL 중복 데이터 확인
2,881
 sessionStorage.getItem 와 sessionStorage.setItem
2,880
 제이쿼리 랜덤으로 배경색 변경
2,879
 preg match에 관한 정규식
2,878
 Stream an audio file with MediaPlayer 오디오 파일 스트리밍 하기
2,877
 Audio Streaming PHP Code
2,876
 PHP $ SERVER 환경 변수 정리
2,875
 Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
2,874
 iframe 사용시 하단에 발생하는 공백 제거방법
2,873
 아이프레임(iframe) 전체화면 가능하게 하기
2,872
 부트스트랩(bootstrapk)에서 사용하는 class명 정리
2,871
 부트스트랩 CSS
2,870
 크롬에서 마진 조절
2,869
 PHP 현재 페이지의 도메인명이나 url등의 정보 알아오기
2,868
 PHP preg match all()
2,867
 PHP 로 웹페이지 긁어오기 모든 방법 총정리!
2,866
 [PHP] 원격지 파일 주소 노출 안하고 curl로 다운로드 받기
2,865
 PHP 함수 정리
2,864
 아이프레임(iframe) 비율 유지하면서 크기 조절하는 방법
2,863
 PHP 배열에서 무작위로 하나 뽑아주는 array rand() 함수
2,862
 PHP 정규식 정리
2,861
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
2,860
 php 크롤링 또는 파싱 함수, 정규식 모음
2,859
 제이쿼리 기본 명령어
2,858
 웹페이지 가로 모드세로 모드 인식하기
2,857
 모바일 웹 화면 강제 회전(가로모드 고정)
2,856
 [HTML5]에서 frameset 대체 방법과 iframe 속성
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright ⓒ musictrot All rights reserved.