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

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

· 1년 전 · 765 · 1

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

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

 

문제 : $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개

오..간단명료~

게시글 목록

번호 제목
17927
17926
17922
17921
17915
17910
17907
17892
17888
17879
17878
17874
17873
17872
17871
17870
17869
17868
17866
17865
17864
17863
17862
17859
17856
17845
17835
17834
17826
17823