Laravel

[Laravel] Arr::get

이나피스 2024. 7. 11. 17:18
반응형
$array = ['name' => 'kim', 'age' => 23];

이 배열에서 name 값을 변수에 담으려면 어떻게 해야할까

 

$name = $array['name'];

Arr::get의 존재를 알기전의 나는 이 코드를 답했을 것이다

 

하지만 만약 배열에 name 이라는 key가 존재하지 않는다면 exception이 터지기 때문에 예외처리를 해주어야한다.

만약 name이 존재하지 않을 때 null을 반환하고자 한다면 대충 아래와 같은 코드가 될 것

$name = array_key_exists('name', $array) ? $array['name'] : null;

 

하지만 Arr::get를 사용하면 해당 키가 없는 경우 알아서 null을 반환할수 있다

$name = Arr::get($array, 'name');

 

 

차이점은 챗지피티에게 물어보자

 

  • 존재 여부 검사:
    • Arr::get($array, 'name'): 이 메서드는 배열에서 지정된 키가 존재하는지 여부를 먼저 확인하고, 존재하지 않을 경우 기본값(null)을 반환합니다.
    • $array['name']: 이 문법은 바로 지정된 키에 해당하는 값을 가져옵니다. 하지만 해당 키가 배열 안에 없으면 PHP는 경고를 발생시키고, Undefined index 오류를 일으킬 수 있습니다.
  • 기본값 설정:
    • Arr::get($array, 'name', $defaultValue): 세 번째 인수를 제공하여 키가 존재하지 않을 때 반환할 기본값을 설정할 수 있습니다.
    • $array['name'] ?? $defaultValue: PHP 7 이상에서는 널 병합 연산자(??)를 사용하여 기본값을 설정할 수 있습니다.
  • 응용 프로그램 로직:
    • Arr::get을 사용하면 배열에서 값에 접근할 때 추가적인 로직을 적용하기 쉽습니다. 예를 들어, 데이터가 없을 때 기본값을 할당하거나, 특정 조건에 따라 다른 값을 반환하는 등의 처리를 할 수 있습니다.
    • $array['name']을 사용하면 단순히 배열에서 값을 직접적으로 가져오는 것이므로 추가적인 로직을 적용하기 어려울 수 있습니다.

 

반응형