더 간단한 구문?
본문
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);
}
}
답변을 작성하시기 전에 로그인 해주세요.