본문 바로가기

undefined index 오류방지 병합 연산자 사용

반응형
  1. <?= htmlspecialchars($row[$column]) ?>:
    • 이 코드는 $row[$column]이 존재할 때 그 값을 HTML 특수 문자를 변환하여 출력합니다.
    • 만약 $row[$column]이 존재하지 않으면 PHP는 Notice 오류를 발생시킬 수 있습니다. 이는 undefined index 오류로, 변수에 접근할 때 해당 인덱스가 배열에 존재하지 않을 경우 발생합니다.
  2. <?= isset($row[$column]) ? htmlspecialchars($row[$column]) : '' ?>:
    • 이 코드는 먼저 $row[$column]이 존재하는지 확인합니다.
    • $row[$column]이 존재하면 그 값을 HTML 특수 문자를 변환하여 출력하고, 존재하지 않으면 빈 문자열('')을 출력합니다.
    • 따라서 이 방식은 undefined index 오류를 방지할 수 있습니다.

이 방식은 오류를 방지하고 더 안전하게 코드를 작성할 수 있게 도와줍니다. 배열에 해당 인덱스가 존재하지 않을 경우를 고려해 빈 문자열을 반환하므로, 예기치 않은 오류로 인한 문제를 예방할 수 있습니다.

하지만 PHP 7.0 이상에서는 **null 병합 연산자 (??)**를 사용할 수도 있습니다. 이 연산자를 사용하면 코드를 더 간결하게 작성할 수 있습니다.

<?= htmlspecialchars($row[$column] ?? '') ?>

이 코드 또한 $row[$column]이 존재하지 않을 경우 빈 문자열을 반환합니다. PHP 7.0 이상을 사용할 수 있다면 이 방식을 사용하는 것도 좋은 선택입니다.

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.