huti avatar

[웹프로그래밍과 PHP] 3. 조건문(if,if~elseif~else, ~?~:축약형)

huti

Published: 06 Jun 2019 › Updated: 06 Jun 2019[웹프로그래밍과 PHP] 3. 조건문(if,if~elseif~else, ~?~:축약형)

[웹프로그래밍과 PHP] 3. 조건문(if,if~elseif~else, ~?~:축약형)

조건문은 프로그래밍에서 자주 쓰는 논리 언어이다. IF문이라고 하기도 하는데, 한국말로 표현하자면, '만약 ~라면, ~을 실행하라.'라는 의미이다. 조건문은 두 부분으로 나눌 수 있다. '만약 ~라면,' 부분과 '~을 실행하라.' 부분으로. 전자는 진위를 판단할 수 있는 조건문이고, 후자는 조건문이 만족되었을 때 실행할 구문이다.

PHP에서는 거짓을 나타내는 여섯 가지 값이 있다. 숫자는 0과 0.0, 문자열은 아무 것도 담지 않은 문자열과 0이라는 문자열, false와 null이라는 특수한 문자, 이 여섯 가지를 제외한 값은 모두 참으로 인식한다.

<?php

$test='php'; //변수선언

if($test == 'php'){ //조건문

       print "$test ".'test입니다.'."\n";      //실행문

}

$id='test';

if($id){ //조건문

       print "$id".'님 환영합니다.'."\n";    //실행문

}

?>

위의 코드를 보면, 두 개의 조건문이 있다.

첫번째 조건문은 $test 변수와 php 문자열이 같은지 확인한다. 두 조건이 같으면, 조건문은 1을 반환하면서 참이 된다.

여기서 주의할 점은 if문에서 같다는 표현은 등호(=)를 두 개 쓴다는 점이다. 등호를 하나만 쓰면, 변수에 값을 넣어준다는 의미가 도니다.

두번째 조건문은 $id변수에 값이 있는지 확인한다. $id변수에 test문자열이 들어가므로 이 조건문은 참이 된다.

아래는 위의 코드를 실행한 화면이다.
alt

if문은 elseif나 else와 많이 사용된다. elseif는 여러 개의 조건문을 표현할 때 사용하고, else는 조건문이 거짓일 때 실행할 구문을 표현할 때 사용한다.

<?php

$gender=''; //변수선언

if($gender == 'male'){ //조건문

       print "남성 회원님을 위한 추천 아이템!\n";           //실행문

}

elseif($gender == 'female'){ //if가 거짓일 때 조건 비교

       print "여성 회원님을 위한 추천 아이템!\n";           //실행문

}

else{

       print "모두를 위한 추천 아이템!\n";         //if와 elseif가 거짓일 때 실행

}

?>

위의 예제에서는 변수에 빈 문자열이 들어가 있기 때문에 if와 elseif의 조건문이 모두 거짓이다. 그래서 else에 있는 실행문이 실행된다.

alt

if~else 구문은 ?와 :으로 축약이 가능하다.

<?php

$select="바다";

if($select=="바다"){

print "내일은 바다로 갑니다.\n";

}

else{

print "내일은 산으로 갑니다.\n";

}

?>

위의 구문을 축약형으로 바꾸면, 아래와 같다.

<?php

$select="바다";

$select=="바다" ? print "내일은 바다로 갑니다.\n":

print "내일은 산으로 갑니다.\n";

?>

위의 코드를 보면, if문이 보이지 않는다. 물음표(?)가 if문을 대신하고, 콜론(:)이 else문을 대신한다. 취약점 분석을 하다 보면, 이런 축약형도 나오기 때문에 축약형을 알아 둘 필요가 있다. 아래는 위의 코드를 실행한 결과이다.

alt

  • 이 내용은 칼리!도커를해킹하다 2부의 아주 일부입니다. 책에서 더 자세히 다룹니다. 2부는 2019년 6월 출간 예정입니다.

  • 칼리!도커를해킹하다 1부는 2부를 공부하기 전에 알아야 할 내용으로 이미 전자책으로 출간되었습니다.

리디북스
https://ridibooks.com/v2/Detail?id=2853000018&fbclid=IwAR3q5hlVZeX20HWAPjWbDnqg8AqYJhx5vWQG2zLxH4xYpS0eWxOdeFLInNE

예스24 http://www.yes24.com/Product/Goods/71536932?scode=032&OzSrank=4

알라딘 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=187404326

Leave [웹프로그래밍과 PHP] 3. 조건문(if,if~elseif~else, ~?~:축약형) to:

Written by

humanism+it = huti. 저서 : 악성코드, 어서 와 해킹은 처음이지. 쓰고 싶은 글을 쓰자!

Read more #kr posts


Best Posts From huti

We have not curated any of huti's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From huti