더 간단한 구문?

더 간단한 구문?

QA

더 간단한 구문?

본문


    if (strlen($value)==strlen(str_replace(array('교환신청','교환중','교환완료','반품신청','반품중','반품완료'),'',$value))) {
        $od_return_status = '';
        $od_status = $ct_status;
        $od_return_memo1 = '';
        $od_return_memo2 = '';
        $sql2 = " update {$g5['g5_shop_order_table']}
                    set od_return_memo1 = '$od_return_memo1',
                        od_return_memo2 = '$od_return_memo2',
                        od_return_status = '$od_return_status',
                        od_status = '$od_status'
                        where od_id = '$od_id' ";
        sql_query($sql2);
    } else if (strlen($value)==strlen(str_replace(array('교환신청','교환중','교환완료'),'',$value))) {
            $od_return_memo1 = '';
            $sql2 = " update {$g5['g5_shop_order_table']}
                        set od_return_memo1 = '$od_return_memo1'
                            where od_id = '$od_id' ";
            sql_query($sql2);
    } else if (strlen($value)==strlen(str_replace(array('반품신청','반품중','반품완료'),'',$value))) {
            $od_return_memo2 = '';
            $sql2 = " update {$g5['g5_shop_order_table']}
                        set od_return_memo2 = '$od_return_memo2'
                            where od_id = '$od_id' ";
            sql_query($sql2);
    }

 

여기서 if (strlen($value)==strlen(str_replace(array('반품신청','반품중','반품완료'),'',$value)))

 

이거보다 간단한 구문이 있을까요?

이 질문에 댓글 쓰기 :

답변 1

부분 코드를 올리실때는 최소한 연관된 시나리오와 불분명한 변수($value)의 역할 및 값의 범위를 알려주셔야할것 같습니다.

아래는 시나리오를 유추해서 예제로 올렸습니다.

 


// 문자열
$value = '반품신청';
$ct_status = '주문취소';
$arr = array('교환신청','교환중','교환완료','반품신청','반품중','반품완료','환불대기');
foreach ($arr as $key => $value) {
    echo "{$key} => {$value} ".PHP_EOL;
    // '교환신청','교환중','교환완료' 하나일 경우 실행
    if ( in_array($value, array('교환신청','교환중','교환완료')) ) {
        echo 'Case 1: '.$value.PHP_EOL;
    
        // $od_return_memo1 = '';
        // $sql2 = " update {$g5['g5_shop_order_table']}
        //             set od_return_memo1 = '$od_return_memo1'
        //                 where od_id = '$od_id' ";
        // sql_query($sql2);
    
    // '반품신청','반품중','반품완료' 하나일경우 실행
    } elseif ( in_array($value, array('반품신청','반품중','반품완료')) ) {
        echo 'Case 2: '.$value.PHP_EOL;
    
        // $od_return_memo2 = '';
        // $sql2 = " update {$g5['g5_shop_order_table']}
        //             set od_return_memo2 = '$od_return_memo2'
        //                 where od_id = '$od_id' ";
        // sql_query($sql2);
    
    // 교환, 반품이 아니고 $ct_status 값이 있다면
    } elseif(isset($ct_status) && $ct_status != ''){
        echo 'Case 3: '.$ct_status.PHP_EOL;
        // $od_return_status = '';
        // $od_status = $ct_status;
        // $od_return_memo1 = '';
        // $od_return_memo2 = '';
        // $sql2 = " update {$g5['g5_shop_order_table']}
        //             set od_return_memo1 = '$od_return_memo1',
        //                 od_return_memo2 = '$od_return_memo2',
        //                 od_return_status = '$od_return_status',
        //                 od_status = '$od_status'
        //                 where od_id = '$od_id' ";
        // sql_query($sql2);
    }
}
답변을 작성하시기 전에 로그인 해주세요.
전체 2,691
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT