[ php ] php 7.x에 대한 상수 정의( define( ) ) 부분에 관하여.......
작성일 18-12-18 11:00
페이지 정보
작성자 웹지기 조회 8,382회 댓글 0건본문
이제는 상수도 잘 사용해야 할 것 같습니다.
기존 php 5.x 이하버젼에서는 define('_GNUBOARD_', false); 일때는
defined('_GNUBOARD_') 출력하면 아무것도 뜨지 않았던 걸로 기억을 합니다.
7.X 버젼에서 define('_GNUBOARD_', false); 일때는
defined('_GNUBOARD_') 를 출력해보면 1이라는 숫자가 뜨는군요.
define('_TEST_',''); 빈값일때도 1을 출력하는군요
define('_GNUBOARD_', false);
echo "defined_GNUBOARD_ ::: ".defined('_GNUBOARD_')." ::: GNUBOARD ::: "._GNUBOARD_;
출력 : defined_GNUBOARD_ ::: 1 ::: GNUBOARD :::
define('_GNUBOARD_', true);
echo "defined_GNUBOARD_ ::: ".defined('_GNUBOARD_')." ::: GNUBOARD ::: "._GNUBOARD_;
출력 : defined_GNUBOARD_ ::: 1 ::: GNUBOARD ::: 1
define('_TEST_','');
echo "_TEST_ ::: ".defined('_TEST_')." ::: _TEST_ ::: "._TEST_;
출력 : _TEST_ ::: 1 ::: _TEST_ :::
상단에서 define('_INDEX_',TRUE); 와 같은 경우 index 페이지에서는
constant("_INDEX_") 의 값이 존재하지만,
서브페이지에서는 define('_INDEX_',TRUE); 또는 define('_INDEX_', FALSE);로 정의하지 않으므로
서브페이지에서 if(constant("_INDEX_")) 와 같은 구문은 오류가 발생한다.
true와 false의 구분은 defined('_INDEX_')의 값이 1이면 일단 상수에 대한 정의를 내린것으로 본다.
그래서 값이 1이 된다. 이러한 경우 CONSTANT() 함수의 사용은 가능하다.
하지만, 정의되지 않은 페이지에서 CONSTANT()함수를 사용하면 오류가 발생한다.
※ 고로 상수를 정의 했다면 해당 상수명으로 조건문을 거시고 확인을 해야 할 것 같습니다.
그리고 정의되지 않은 상수사용도 더 조심해야 할 것 같습니다.
추천0
비추천 0
댓글목록
등록된 댓글이 없습니다.