테스트 사이트 - 개발 중인 베타 버전입니다

if문으로 비교할게 여러개일때 (feat array_filter)

안녕하세요 그냥.. 팁입니다. 

일하다가 문득 귀차니즘으로 생각난.. 소소하지만 또 은근 자주 활용 할수 있는 그런 팁입니다.

 

문제 : $a, $b, $c, $d, $e, $f, $g 의 변수값이 있을때   $z 변수값을 'Y'로 만들고 싶다!

 

(활용예시 :

invoice 파일등록,

bl 서류 보내고,

고객사에 bl 보낸거 확인되고,

기타 서류 등록되어 있고,

예상 출고일은 등록되었나,

예상 도착일은 등록되었나.

 

위 조건이 만족할경우 "완료" 버튼을 보이게 하라 

 

라는 미션이 있다고 하면

 

if ($a && $b && $c && $d && $e && $f && $g) {

  echo '완료 버튼 생성';

}

 

뭐 이러면 됩니다 사실 ㅋㅋ

이게 더 직관적이긴 합니다. 

가장 좋은 소스는? 어렵지않고 쉬우면서 동작잘되고 오류없는 소스!

 

근데 귀찮을때가 있더라구요.  그리고 변수명이 너무 길면 가독성도 좀 별로인거 같고..

그래서 array_filter쓰면 좀 심플한 느낌이 들더군요.

 

(array_reduce 활용도 같이하려다가 초보분들은 어려워하실수도 있어서 뺐습니다)

<?php

$a = '값1'; // 빈 값이 아님

$b = '값2'; // 빈 값이 아님

$c = '값3'; // 빈 값이 아님

$e = '값4'; // 빈 값이 아님

$f = '값5'; // 빈 값이 아님

$g = '값6'; // 빈 값이 아님

$arr = array($a, $b, $c, $d, $e, $f, $g); // 배열로 변수들을 묶기

$filtered = array_filter($arr);

// 모든 변수가 빈 값이 아닐 경우

if (count($filtered) === count($arr)) {

    $button = 'Y'; // 버튼을 Y로 변경

}

 

 

array_filter에 2번째 인수는 콜백함수 인데 없어도 되긴하지만 warrning 발생되는거 같아요

이번팁은 값이 있는지 없는지만 체크하려고 했기때문에 저렇게 했지만

콜백함수 만들면 좀더 디테일하게 체크할수 있을겁니다!!

 

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

오..간단명료~

게시글 목록

번호 제목
18200
18195
18193
18181
18179
18173
18170
18164
18158
18155
18152
18151
18150
18140
18139
18138
18131
18130
18120
18119
18118
18117
18116
18111
18110
18108
18107
18106
18100
18090