[ php ] php 7.x에 대한 상수 정의( define( ) ) 부분에 관하여....... > PHP

본문 바로가기
사이트 내 전체검색

PHP

[ php ] php 7.x에 대한 상수 정의( define( ) ) 부분에 관하여.......

페이지 정보

작성자 웹지기 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 687회 작성일 18-12-18 11:00

본문

이제는 상수도 잘 사용해야 할 것 같습니다.


기존 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

댓글목록

등록된 댓글이 없습니다.

Total 76건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
127
어제
359
최대
359
전체
70,124

그누보드5
Copyright © funyphp.com. All rights reserved.