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

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

· 1년 전 · 764 · 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개

오..간단명료~

게시글 목록

번호 제목
17657
17655
17654
17653
17652
17651
17650
17642
17633
17632
17631
17630
17628
17624
17623
17620
17618
17617
17614
17612
17611
17610
17609
17608
17607
17604
17603
17602
17600
17594