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

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

php

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

작성자 웹지기
작성일 18-12-18 11:00 | 조회 15,396 | 댓글 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

댓글목록 0

등록된 댓글이 없습니다.

php 목록

Total 82건
게시물 검색

회원로그인

접속자집계

오늘
17,437
어제
19,533
최대
141,390
전체
25,419,427

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