본문 바로가기

IT이야기/php

php] if 축약형 ? :

if, else 조건문 줄여 쓰기(축약형) - ?: , 물음표

 

가끔 if문을 쓰다가 보면 아주 깔끔하게 한줄로 하고 싶을때가 있죠

이때 쓸만한 팁을 적어 둘까 합니다.

 

- 축약형을 사용하는 이유?

 

간단하다 연산 처리 속도를 좀더 빠르게 처리하기 위함이다.

몇줄의 기계 언어를 한줄로 표현 할 수 있도록 더 빠른 연산이 가능하다는..  아주 보편적 가치 때문이다.

사실 보다 기계가 빨리 이해 할 수 있도록 하는데 목적이 있다고 한다.

 

 

 

교과서 적인 if 문의 사용예 입니다.

 

$a의 값이 1이 맞는지 틀리는지를 비교해서 $msg 를 선택하도록 하는 if 문 이다.

 

if($a == "1") {

  $msg = "YES.";

} else {

  $msg = "NO!.";

}

 

하지만 뭔가 그럴 듯(?) 하게 하고 싶다면 축약형으로 쓰면 된다.

다음의 예를 보고 참고 하자.

 

1. 다음과 같이 줄여 쓸 수 있다.

 

$a == "1" ? $msg = "YES." : $msg = "NO.";

 

     변수 조건부 할당도 가능 하다.

 

$msg = ($a ? $a : $b);

 

2. 그렇다면 HTML 중간에 echo  형으로 바로 표기 한다면.. 다음과 같이 활용도 된다.

 

<? if($a)?echo "OK":echo "NO." ?>

 

 

   또 다른 예이다.

 

<?=$a?"OK":"NO"?>

 

 

이러고 나니 다른 예를 찾게 된다.

그래서 준비 했다.

 

3. $msg = ($a ? $a : $b); 구문은 아래 처럼 더 축약 될 수 있다.

 

$var = ($a ? : $b);

 

4. 또는 and, or 로 구문을 묶을 수 있다. 

 

if ( ! $a ) $a = 'OK';

 

위 구문은 아래처럼 더 축약될 수 있다.

 

$a or $a = 'OK';

 

또는  

 

$a || $$a = 'OK';

 

   응용하여 조건 판단 후 실행 같은 아래와 같은 사용이 가능하다.

 

if ($a) run();

 

위의 조건별 실행 구문은 아래처럼 축약될 수 있다.

 

$a && run();

 

아래와 같은 코드를 해보면 작동 방식을 이해 할수 있다.

 

<?
funtion run(){

   echo "Hello World";

}
$a = true;

$a || $a = 'hello';

echo $a;  // 1을 출력 만약 $a가 false 라면 hello 가 출력된다. 

$a && $a = 'world';

echo $a; // world

 

$a && run();   // Hello World

?>

// print

1
world 
Hello World

 

축약형을 쓰는 경우가 상당히 많다.

 

기본적인 if문만 안다면 ? :패턴이 뭔지 몰라서 소스를 분석할때

 

힘들 수 도 있으니 알아두자! 그리고 의외로 쓸대가 많음.

'IT이야기 > php' 카테고리의 다른 글

php 사용자 정의 함수  (0) 2020.02.28
php 함수!  (0) 2020.02.27
php 언어셋 변환! euc-kr, utf-8  (0) 2020.01.26
외부 url로 파라미터(값)넘기기! Curl!  (0) 2020.01.24
php 다차원배열!  (0) 2020.01.13