개발노트
목록
[PHP] isset() 변수선언여부 확인 및 예제
issetphp8x오류발생
PHP 2024.04.11 46 회 읽음
PHP 24.04.11 46

PHP는 변수를 선언하지 않아도 사용이 가능하지만 그로 인해 비 효율적인지 부분도 존재합니다. PHP8.X 버전의 경우에는 변수 선언을 하지 않으면 경고 메시지가 표시되므로 변수 선언 없이 비교 연산과 같은 처리가 되지 않도록 하기 위해서 적절하게 사용하는게 좋습니다.

공식사이트에도 isset에 대한 설명을 볼 수 있으며 간략하게 확인 해 보고 싶다면 아래글을 보시면 됩니다.

https://www.php.net/manual/en/function.isset.php

(PHP 4, PHP 5, PHP 7, PHP 8)

isset - 변수가 선언되었고 다른 변수인지 확인합니다.


아래와 같이 코드를 사용하게 되면 선언이 되어 있지 않아 php8에서는 에러가 표시됩니다.

    if( !$start ){
        $start = 0;
    }

Warning: Undefined variable $start in /home1/openmaker/public_html/1.php on line 3게


게시판 페이지를 처리할 때 첫화면은 시작이 0이라서 구버전에서는 별다른 오류가 없지만 앞으로는 아래와 같이 개선하여 사용하는것을 권장합니다.

    if( isset($start) && !$start ){
        $start = 10;
    }

이와 같은 방식이 아닌 처음에 변수를 선언하는 방법도 좋습니다.
    $start = 0;
    $start = $start ? $start : 0;

배열을 사용할 때에도 배열 이름에 쌍따옴표로 묶지 않으면 오류가 발생합니다.

<?
    echo $row[title]; //에러 발생
    echo $row["title"];
?>

Fatal error: Uncaught Error: Undefined constant "title" in [생략]:2 Stack trace: #0 {main} thrown in [생략] on line 2


어쩔 수 없이 경고를 무시하고 싶다면 ini_set 명령을 이용해서 에러 내용을 무시합니다.

ini_set("display_errors", 0);


경고를 무시하는건 좋은 방법은 아니므로 평소 변수선언을 하거나 선언여부를 확인하여 판단할 수 있도록 소스를 작성합니다. java, javascript, c언어와 같은 다른 언어에서는 변수를 선언하지 않으면 사용이 불가하기에 변수 선언을 습과화 하는게 새로운 언어를 습득하는데 도움이 됩니다.


목록