좋은 PHP 작성 - 배열 조회

4930 단어 phpwebdevprogramming
평가할 값에 따라 반환할 잠재적 값 목록이 있습니다. 아주 흔한 수술이죠? 당신은 즉시 생각하고, if 문이나 심지어 스위치를 집어넣고 그것을 하루라고 부르게 될 것입니다. 예를 보겠습니다. 우리는 관계를 기반으로 친척 이름을 반환하고 싶습니다 (다른 사람은 이름을 쉽게 잊어 버리나요?):

$relative = $_GET['relative'];

if($relative == 'mother') {
    return 'Harriet';
}

if($relative == 'father') {
    return 'Robert';
}

if($relative == 'daughter') {
    return 'Rachel';
}

if($relative == 'grandmother') {
    return 'Audrey';
}

// imagine 10 more! 


이것은 완벽하게 적절한 솔루션입니다. 그러나 스위치를 사용하여 더 단순화하고 싶을 것입니다.

$relative = $_GET['relative'];

switch ($relative) {
    case 'mother':
        return 'Harriet';
        break;
    case 'father':
        return 'Robert';
        break;
    case 'daughter':
        return 'Rachel';
        break;
    case 'grandmother':
        return 'Audrey';
        break;
    default:
        return 'relative not found!';
}


좋습니다. 훨씬 더 구조화된 느낌이 들지만 구문이 상당히 무겁습니다. 그렇죠? 완벽하게 서비스할 수 있지만 한 단계 더 나아가 보겠습니다.

조회 배열을 입력합니다. 조회 배열은 키-값 쌍 목록이며, 여기서 키는 조회되는 것입니다!

위의 조회 배열 형식은 다음과 같습니다.

$relative = $_GET['relative'];

$relatives = [
    'mother' => 'Harriet',
    'father' => 'Robert',
    'daughter' => 'Rachel',
    'grandmother' => 'Audrey',
];

return $relatives[$relative] ?? 'relative not found!';


lookup-array가 얼마나 읽기 쉬운지, 그리고 코드의 양을 얼마나 극적으로 줄이는지 간결한 방법으로 알 수 있습니다! 참고로 조회 배열이 항상 최선의 선택은 아니지만 그럴 때는 매우 자연스럽게 느껴져야 합니다!

읽어주셔서 감사합니다. 귀하의 생각을 알려주세요!

좋은 웹페이지 즐겨찾기