Loading...
[PHP] 삼항연산자와 or 과 and 연산자
REDINFO
약 2년전 2022-04-04 03:32:41

삼항연산자의 경우 대학교 시절 C언어 접하면서 처음 용어를 알게 되었다. 

당시 기억으로 시험때문에 사용했고 실제 프로그램 작업할때는 거의 사용하지는 않았던것같다. 

 

하지만 삼항 연산자는 간다한 처리에서 많이 사용하는 방식이니 반드시 숙지하는게 좋다. 

 

책으로 본다면 전문용어로 설명이 되어있겠지만 나같은 경우 그런 설명은 별로 좋아하지 않는다. 

나는 내가 이해했던 지식이 그 어떤 설명보다도 좋은 글이 될 수 있을 거라 믿는다. 

 

삼항연산자는 1개의 값을 가지고 맞냐 틀리냐를 구분해서 최종 값을 정하는 형식이다. 

 

예를 들면 홍길동의 나이가 20살이고 성인이라는 대답을 해야하는경우 아래와 같이 표현이 가능하다. 

 

<?php 
// age 가 20일경우

$a = $_GET['age']== 20 ? '성인':'미성년자';  
echo $a;  // 성인
?>

 

위에서는 간단한 예를 든 소스이고 주로 나같은경우 삼항 연산자를 아래와 같이 변수 초기화 용도로 많이 사용한다. 

<?php 
// age 가 20일경우
$_GET['name'] = empty($_GET['name']) ? '홍길동':$_GET['name'];
$_GET['age'] = empty($_GET['age']) ? 20:$_GET['age'];
$_GET['birth'] = empty($_GET['birth']) ? '19881119':$_GET['birth'];
?>

 

두번째로는 or 과 and 연산자 인데 이건 나도거의 사용을 안하고 혹여나 사용한다면 파일 상단에서 변수 없을 시 

종료하는 용도로 사용한다. 

 

주로 사용할때는 파일 상단에서 index 파일을 거치지 않았을 경우  단독실행이 불가능하도록

막기 위해 사용된다. 

 

<?php defined('AUTH') or die('access deny!'); // index.php 파일에서 define('AUTH',true) 선언됬을 경우

 

하지만 좀더 포괄적으로 설명을 해야하니 억지로 소스를 만들어서 예제를 본다면 아래와 같이 

보여줄 수 있다. 

 

<?php 
  function and_point($key,$value){ $_GET[$key] = $value;}
  empty($_GET['name']) && and_point('name','홍길동');
  empty($_GET['age']) && and_point('age',20);
  empty($_GET['birth']) && and_point('birth','19881119');
  print_r($_GET); // Array ( [name] => 홍길동 [age] => 20 [birth] => 19881119 )

  function or_point($key,$value){ $_GET[$key] = '';}
  empty($_GET['name']) || or_point('name','홍길동');
  empty($_GET['age']) || or_point('age',20);
  empty($_GET['birth']) || or_point('birth','19881119');
  print_r($_GET); // Array ( [name] => [age] => [birth] => )
?>

 

소스를 보면 알겠지만 and 연산자의 경우 왼쪽 조건이 맞을 경우 오른쪽 조건을 실행 하게되고 

or 연산자는 왼쪽 조건이 아닐경우 오른쪽 조건을 실행하게 된다.  

 

그나저나 별로 쓰지도 않는데 억지로 만들다 보니 간단해도 막상 실행하지 않고서는 헷갈리는것같다. 

 

한가지 주의할점이 있다면 실무에서 여러명이 개발작업을 할때는 반드시 연산자 처리에 대한 

협의가 필요하니 가독성이 별로 좋지 않은 프로그래밍은 되도록 피하도록 하자.

 

 

이 포스트글이 도움이 되었나요?
6
카테고리 연관글

Comment

댓글작성

0(500) | 1(30)