<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>머니버그 솔루션 &amp;gt; TIP &amp;gt; PHP 팁</title>
<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip</link>
<description>머니버그 솔루션 &amp;gt; TIP &amp;gt; PHP 팁</description>
<language>ko</language>
	<item>
	<title>PHP 날짜 함수 사용하기(정리) - DATE, STRTOTIME, MKTIME</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=6</link>
	<description><![CDATA[<p>PHP 에서 날짜를 다루는데는 주로 date(), strtotime(), mktime() 의 세가지 함수를 사용 합니다.</p>
<p>각각의 사용법과 몇가지 응용에 대해서 알아보도록 하겠습니다.</p>
<p> </p>
<h2>1. date() 함수.</h2>
<p> </p>
<p>string date ( string $format [, int $timestamp ] )</p>
<p> </p>
<p>정수형으로 주어지는 timestamp나, timestamp가 주어지지 않았을 경우에는 현재 로컬 시간을 사용하여, 주어진 포맷 문자열에 따라 형식화한 문자열을 반환합니다.</p>
<p>즉 timestamp는 선택적이고, 기본값은 time()의 값입니다. 지원되지 않는 포맷 문자는 그대로 출력됩니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div><div style="line-height:130%;">5</div><div style="line-height:130%;">6</div><div style="line-height:130%;">7</div><div style="line-height:130%;">8</div><div style="line-height:130%;">9</div><div style="line-height:130%;">10</div><div style="line-height:130%;">11</div><div style="line-height:130%;">12</div><div style="line-height:130%;">13</div><div style="line-height:130%;">14</div><div style="line-height:130%;">15</div><div style="line-height:130%;">16</div><div style="line-height:130%;">17</div><div style="line-height:130%;">18</div><div style="line-height:130%;">19</div><div style="line-height:130%;">20</div><div style="line-height:130%;">21</div><div style="line-height:130%;">22</div><div style="line-height:130%;">23</div><div style="line-height:130%;">24</div><div style="line-height:130%;">25</div><div style="line-height:130%;">26</div><div style="line-height:130%;">27</div><div style="line-height:130%;">28</div><div style="line-height:130%;">29</div><div style="line-height:130%;">30</div><div style="line-height:130%;">31</div><div style="line-height:130%;">32</div><div style="line-height:130%;">33</div><div style="line-height:130%;">34</div><div style="line-height:130%;">35</div><div style="line-height:130%;">36</div><div style="line-height:130%;">37</div><div style="line-height:130%;">38</div><div style="line-height:130%;">39</div><div style="line-height:130%;">40</div><div style="line-height:130%;">41</div><div style="line-height:130%;">42</div><div style="line-height:130%;">43</div><div style="line-height:130%;">44</div><div style="line-height:130%;">45</div><div style="line-height:130%;">46</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?php</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$toDay</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> date(<span style="color:#63a35c;">'Ymd'</span>); <span style="color:#999999;">//오늘</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$yesterDay</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">$toDay</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">-</span><span style="color:#0099cc;">1</span>; <span style="color:#999999;">// 어제</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>); <span style="color:#999999;">//24시간으로 출력</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d h:i:s"</span>); <span style="color:#999999;">// 12시간으로 출력</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Ymd"</span>); <span style="color:#999999;">//날짜까지만 출력</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"h:i:s"</span>); <span style="color:#999999;">// 시간만 출력</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>,<span style="color:#066de2;">time</span>()); <span style="color:#999999;">//timestamp 형식으로 날짜/ 시간의 형태로 출력</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d"</span>,strtotime (<span style="color:#63a35c;">"+1500 minutes"</span>)); <span style="color:#999999;">// 1500분을 추가한 형태</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"-1 day"</span>)); <span style="color:#999999;">// 어제</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"now"</span>)); <span style="color:#999999;">// 현재</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"+1 day"</span>)); <span style="color:#999999;">// 내일</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"-1 week"</span>)); <span style="color:#999999;">// 일주일 전</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"+1 week"</span>)); <span style="color:#999999;">// 일주일 후</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"-1 month"</span>)); <span style="color:#999999;">// 한달 전</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"+1 month"</span>)); <span style="color:#999999;">// 다음달</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"+1 week 2 days 3 hours 4 seconds"</span>)); <span style="color:#999999;">// 1주 2일 3시간 4초 후</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"next Thursday"</span>)); <span style="color:#999999;">// 다음주 목요일</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"last Monday"</span>)); <span style="color:#999999;">// 지난 월요일</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Y-m-d H:i:s"</span>, strtotime(<span style="color:#63a35c;">"19 December 2016"</span>)); <span style="color:#999999;">// 2016년 12월 19일</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">//날짜 입력시 사용가능 특수문자는 -와 없는 형태 두가지만 가능</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Ymd"</span>,strtotime (<span style="color:#63a35c;">"-1 days"</span>, strtotime(<span style="color:#63a35c;">'20070819'</span>))); <span style="color:#999999;">//특정날짜에서 하루 빼기</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date(<span style="color:#63a35c;">"Ymd"</span>,strtotime (<span style="color:#63a35c;">"+1 days"</span>, strtotime(<span style="color:#63a35c;">'2007-08-19'</span>)));<span style="color:#999999;">//특정날짜에서 하루 빼기</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date( <span style="color:#63a35c;">"Y-m-d\TH:i:s"</span>, strtotime(<span style="color:#63a35c;">'20070101040404'</span>) ); <span style="color:#999999;">//timestamp의 형태 정상적으로 처리안됨 </span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">date( <span style="color:#63a35c;">"Y-m-d\TH:i:s"</span>, strtotime(<span style="color:#63a35c;">'2007-01-01 04:04:04'</span>) ); <span style="color:#999999;">//정상적으로 처리됨(제너센스 rss에서 사용) </span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">//문자형 날짜와 문자형 날짜 사이의 일수 구하기</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 문자형 날짜를 초로 계산하여 뺀다음에 일자로 변환해줌( 가장 정확함) </span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> (strtotime(<span style="color:#63a35c;">'20070803'</span>) <span style="color:#0086b3;"></span><span style="color:#a71d5d;">-</span> strtotime(<span style="color:#63a35c;">'20070801'</span>))<span style="color:#0086b3;"></span><span style="color:#a71d5d;">/</span><span style="color:#0099cc;">60</span><span style="color:#a71d5d;">/</span><span style="color:#0099cc;">60</span><span style="color:#a71d5d;">/</span><span style="color:#0099cc;">24</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">//오늘 날짜부터 지정한 일수(day)후의 날짜로 timestamp형식으로 출력하기 </span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">function</span> plus_day(<span style="color:#066de2;">$day</span>) { </div><div style="padding:0 6px;white-space:pre;line-height:130%;">    <span style="color:#a71d5d;">return</span> <span style="color:#066de2;">mktime</span>(<span style="color:#0099cc;">0</span>,<span style="color:#0099cc;">0</span>,<span style="color:#0099cc;">0</span>,date(<span style="color:#63a35c;">"m"</span>),date(<span style="color:#63a35c;">"d"</span>)<span style="color:#0086b3;"></span><span style="color:#a71d5d;">+</span><span style="color:#066de2;">$day</span>,date(<span style="color:#63a35c;">"Y"</span>)); </div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">//한줄로 오늘 날짜 시간 뽑아오기 </span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">list(<span style="color:#066de2;">$y</span>,<span style="color:#066de2;">$m</span>,<span style="color:#066de2;">$d</span>,<span style="color:#066de2;">$h</span>,<span style="color:#066de2;">$i</span>,<span style="color:#066de2;">$s</span>) <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">explode</span>(<span style="color:#63a35c;">" "</span>,date(<span style="color:#63a35c;">"Y m d h i s"</span>));</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$dateString</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> date(<span style="color:#63a35c;">"Y-m-d"</span>, <span style="color:#066de2;">time</span>());</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#066de2;">$dateString</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a href="http://colorscripter.com/info#e" target="_blank" rel="nofollow noreferrer noopener">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>결과)</p>
<p>2017-01-10</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>2. strtotime() 함수.</h2>
<p> </p>
<p>int strtotime ( string $time [, int $now = time() ] )</p>
<p> </p>
<p>주어진 날짜 형식의 문자열을 1970년 1월 1일 0시 부서 시작하는 유닉스 타임스탬프로 변환합니다.</p>
<p>두번째 인자가 주어지면 주어진 타임스탬프를 기준으로 계산되어 집니다.</p>
<p>날짜가 주어지지 않고 변화량만 주어지면 로컬 타임이 사용됩니다.  +1 day, +1 week 등이 사용될 수 있고, 음수값도 사용됩니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div><div style="line-height:130%;">5</div><div style="line-height:130%;">6</div><div style="line-height:130%;">7</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?php</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$timestamp</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> strtotime(<span style="color:#63a35c;">"+1 week"</span>);</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> date(<span style="color:#63a35c;">"Y-m-d"</span>, <span style="color:#066de2;">$timestamp</span>), <span style="color:#63a35c;">"&lt;br/&gt;"</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$timestamp</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> strtotime(<span style="color:#63a35c;">"2016-12-01 +1 week"</span>);</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> date(<span style="color:#63a35c;">"Y-m-d"</span>, <span style="color:#066de2;">$timestamp</span>), <span style="color:#63a35c;">"&lt;br/&gt;"</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a href="http://colorscripter.com/info#e" target="_blank" rel="nofollow noreferrer noopener">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>결과)</p>
<p>2017-01-17</p>
<p>2016-12-08</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>3. mktime() 함수.</h2>
<p> </p>
<p>int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )</p>
<p> </p>
<p>인자로 주어진 값(시,분,초,월,일,년)에 대응하는 타임스탬프를 반환합니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?php</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$timestamp</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">mktime</span>(<span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">0</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">1</span>, <span style="color:#0099cc;">2017</span>);</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> date(<span style="color:#63a35c;">'Y-m-d'</span>, <span style="color:#066de2;">$timestamp</span>);</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a href="http://colorscripter.com/info#e" target="_blank" rel="nofollow noreferrer noopener">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>결과)</p>
<p>2017-01-01</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>4. 사용 예제 입니다.</h2>
<p> </p>
<p>- 특정월의 마지막 날짜를 구하는 방법입니다.</p>
<p> </p>
<p>방법은 date함수의 포맷문자열 't'를 사용합니다. 't'는 주어진 월의 일수를 구하는 형식 문자 입니다.</p>
<p> </p>
<p>$lastDay = date('t', strtotime("2017-01-01"));</p>
<p> </p>
<p>타임스탬프는 mktime 으로 구할수도 있습니다.</p>
<p> </p>
<p>$lastDay = date('t', mktime(0, 0, 0, 1, 1, 2017));</p>
<p> </p>
<p>mktime함수의 인자는 순서대로 시간, 분, 초, 월, 일, 년도 입니다.</p>
<p> </p>
<p>- 특정 날짜의 요일을 구하는 방법 입니다.</p>
<p>$day = "2017-01-10";</p>
<p> </p>
<p>date 함수의 'w' 포맷 문자는 0부터 6까지의 숫자값을 반환합니다. 순서대로 일~토 를 나타냅니다.</p>
<p> </p>
<p>$weekString = array("일", "월", "화", "수", "목", "금", "토");
</p><p>echo($weekString[date('w', strtotime($day))]);</p>
<p> </p>
<p>- 하루전 날짜를 구하는 방법 입니다.</p>
<p> </p>
<p>$day = "2017-01-10"; 의 하루전 날짜인 "2017-01-09" 를 문자열로 구하려고 합니다.</p>
<p> </p>
<p>$beforeDay = date("Y-m-d", strtotime($day." -1 day"));</p>
<p> </p>
<p>날짜 뒤에 "+1 day", "+1 month", "+1 year", "+1 week" 등의 문자열을 붙여서 날짜를 계산할 수 있습니다.</p>
<p> </p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>5. date 함수에서 사용할 수있는  포맷문자열 입니다.</h2>
<p> </p>
<p>--- 일 ---</p>
<p>d  :  일, 앞에 0이 붙는 2 숫자  [ 01에서 31 ]</p>
<p>D  :  요일 글자 표현, 3 문자 [ Mon에서 Sun ]</p>
<p>j  :  앞에 0이 붙지 않는 일 [ 1에서 31 ]</p>
<p>l  :  (소문자 'L') 요일의 완전한 글자 표현 [ Sunday에서 Saturday ]</p>
<p>N  :  요일의 ISO-8601 숫자 표현 (PHP 5.1.0에서 추가) [ 1(월요일)에서 7(일요일) ]</p>
<p>S  :  일 영어 접미사, 2 문자 [ st, nd, rd, th. j와 같이 사용하기 좋음. ]</p>
<p>w  :  요일 숫자 표현 [ 0(일요일)에서 6(토요일) ]</p>
<p>z  :  해당 연도 일차 [ (0에서 시작) 0에서 365 ]</p>
<p> </p>
<p>--- 주 ---</p>
<p>W  :  ISO-8601 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) [ 예시: 42 (그 해의 42번째 주) ]</p>
<p> </p>
<p>---월 ---</p>
<p>F  :  January나 March 같은 월의 완전한 글자 표현 [ January에서 December ]</p>
<p>m  :  0이 붙는 월 숫자 표현 [ 01에서 12 ]</p>
<p>M  :  월의 축약 글자 표현, 3 문자 [ Jan에서 Dec ]</p>
<p>n  :  0이 붙지 않는 월 숫자 표현 [ 1에서 12 ]</p>
<p>t  :  주어진 월의 일 수 [ 28에서 31 ]</p>
<p> </p>
<p>--- 연 ---</p>
<p>L  :  윤년 여부 [ 윤년엔 1, 그 외엔 0 ]</p>
<p>o  :  ISO-8601 연도. Y와 같지만, ISO 주차(W)가 전해나 다음해에 해당하면, 그 연도를 사용합니다. (PHP 5.1.0에서 추가) [ 예시: 1999나 2003 ]</p>
<p>Y  :  연도의 완전한 숫자 표현, 4 숫자 [ 예시: 1999나 2003 ]</p>
<p>y  :  도의 두 숫자 표현 [ 예시: 99나 03 ]</p>
<p> </p>
<p>--- 시간 ---</p>
<p>a  :  오전과 오후의 소문자 [ am 또는 pm ]</p>
<p>A  :  오전과 오후의 대문자 [ AM 또는 PM ]</p>
<p>B  :  스와치 인터넷 시간 [ 000에서 999 ]</p>
<p>g  :  0이 붙지 않는 12시간 형식 시 [ 1에서 12 ]</p>
<p>G  :  0이 붙지 않는 24시간 형식 시 [ 0에서 23 ]</p>
<p>h  :  0이 붙는 12시간 형식 시 [ 01에서 12 ]</p>
<p>H  :  0이 붙는 24시간 형식 시 [ 00에서 23 ]</p>
<p>i  :  0이 붙는 분 [ 00에서 59 ]</p>
<p>s  :  초, 0이 붙음 [ 00에서 59 ]</p>
<p>u  :  마이크로초 (PHP 5.2.2에서 추가) [ 예시: 54321 ]</p>
<p> </p>
<p>--- 시간대 ---</p>
<p>e  :  시간대 식별자 (PHP 5.1.0에서 추가) [ 예시: UTC, GMT, Atlantic/Azores ]</p>
<p>I  :  (대문자 i) 일광 절약 시간 여부  [ 일광 절약 시간이면 1, 아니면 0 ]</p>
<p>O  :  그리니치 시간(GMT)과 시차 [ 예시: +0200 ]</p>
<p>P  :  시와 분 사이에 콜론이 들어가는 그리니치 시간(GMT)과 차이 [ 예시: +02:00 ]</p>
<p>T  :  시간대 축약어 [ 예시: EST, MDT ... ]</p>
<p>Z  :  시간대 오프셋 초. UTC 서쪽은 항상 음수, UTC 동쪽은 항상 양수 [ -43200에서 50400 ]</p>
<p> </p>
<p>--- 날짜/시간 표현 ---</p>
<p>c  :  ISO 8601 날짜 (PHP 5에서 추가) [ 2004-02-12T15:19:21+00:00 ]</p>
<p>r  :  ≫ RFC 2822 형식 날짜 [ 예시: Thu, 21 Dec 2000 16:01:07 +0200 ]</p>
<p>U  :  유닉스 에포치(January 1 1970 00:00:00 GMT)부터 초수 [ time() 참조 ]</p>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Sun, 07 Nov 2021 19:17:27 +0900</dc:date>
	</item>
	<item>
	<title>PHP isset(), empty(), isnull() 비교(차이점)</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=5</link>
	<description><![CDATA[isset(), empty(), isnull() 비교(차이점)

<p>PHP로 코딩을 하다보면 값 검증을 할 때 자주 쓰이는 것이 isset 과 empty 와 is_null 함수입니다.</p>
<p>셋은 비슷하면서도 다른 차이점이 있습니다.</p>
<p>무작정 해당 함수를 쓰기 보단 자세히 파악해서 구분해서 사용 합니다.</p>
<p> </p>
<h2>isset()</h2>
<p>isset() 함수는 해당 변수에 값이 존재하고, NULL 이 아닌지를 확인합니다.</p>
<p>변수가 존재하고 NULL 이 아닌 값을 가지고 있으면 TRUE를 리턴합니다.</p>
<p>그 외에는 FALSE를 리턴합니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div><div style="line-height:130%;">5</div><div style="line-height:130%;">6</div><div style="line-height:130%;">7</div><div style="line-height:130%;">8</div><div style="line-height:130%;">9</div><div style="line-height:130%;">10</div><div style="line-height:130%;">11</div><div style="line-height:130%;">12</div><div style="line-height:130%;">13</div><div style="line-height:130%;">14</div><div style="line-height:130%;">15</div><div style="line-height:130%;">16</div><div style="line-height:130%;">17</div><div style="line-height:130%;">18</div><div style="line-height:130%;">19</div><div style="line-height:130%;">20</div><div style="line-height:130%;">21</div><div style="line-height:130%;">22</div><div style="line-height:130%;">23</div><div style="line-height:130%;">24</div><div style="line-height:130%;">25</div><div style="line-height:130%;">26</div><div style="line-height:130%;">27</div><div style="line-height:130%;">28</div><div style="line-height:130%;">29</div><div style="line-height:130%;">30</div><div style="line-height:130%;">31</div><div style="line-height:130%;">32</div><div style="line-height:130%;">33</div><div style="line-height:130%;">34</div><div style="line-height:130%;">35</div><div style="line-height:130%;">36</div><div style="line-height:130%;">37</div><div style="line-height:130%;">38</div><div style="line-height:130%;">39</div><div style="line-height:130%;">40</div><div style="line-height:130%;">41</div><div style="line-height:130%;">42</div><div style="line-height:130%;">43</div><div style="line-height:130%;">44</div><div style="line-height:130%;">45</div><div style="line-height:130%;">46</div><div style="line-height:130%;">47</div><div style="line-height:130%;">48</div><div style="line-height:130%;">49</div><div style="line-height:130%;">50</div><div style="line-height:130%;">51</div><div style="line-height:130%;">52</div><div style="line-height:130%;">53</div><div style="line-height:130%;">54</div><div style="line-height:130%;">55</div><div style="line-height:130%;">56</div><div style="line-height:130%;">57</div><div style="line-height:130%;">58</div><div style="line-height:130%;">59</div><div style="line-height:130%;">60</div><div style="line-height:130%;">61</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?php</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// null 값 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'null 값 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">null</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">isset</span>(<span style="color:#066de2;">$val</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 선언만한 변수 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'선언만한 변수 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val2</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">isset</span>(<span style="color:#066de2;">$val2</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 공백 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'공백 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val3</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#63a35c;">''</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">isset</span>(<span style="color:#066de2;">$val3</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 숫자 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'숫자 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val4</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">1</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">isset</span>(<span style="color:#066de2;">$val4</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 빈 배열</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'빈 배열 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val4</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">array</span>();</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">isset</span>(<span style="color:#066de2;">$val4</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>위 코드와 같이 if문 안에 isset 으로 NULL 값이 들어간 $test 변수를 검사하면 False가 나옵니다.</p>
<p>그리고 변수 $test에 어떠한 값도 초기화 하지않고 isset으로 검사하면 값은 NULL 이기 때문에 false가 리턴됩니다.</p>
<p>그 외 변수에 숫자, 문자, 공백, 0, 빈 배열 등 값이 들어가도 NULL 값이 아니기 때문에 값이 있다고 보고 true를 리턴합니다.</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>empty()</h2>
<p>empty()는 변수에 값이 비어 있는지 체크합니다.</p>
<p>빈 값이면 TRUE를 리턴하고 아니면 FALSE를 리턴합니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div><div style="line-height:130%;">5</div><div style="line-height:130%;">6</div><div style="line-height:130%;">7</div><div style="line-height:130%;">8</div><div style="line-height:130%;">9</div><div style="line-height:130%;">10</div><div style="line-height:130%;">11</div><div style="line-height:130%;">12</div><div style="line-height:130%;">13</div><div style="line-height:130%;">14</div><div style="line-height:130%;">15</div><div style="line-height:130%;">16</div><div style="line-height:130%;">17</div><div style="line-height:130%;">18</div><div style="line-height:130%;">19</div><div style="line-height:130%;">20</div><div style="line-height:130%;">21</div><div style="line-height:130%;">22</div><div style="line-height:130%;">23</div><div style="line-height:130%;">24</div><div style="line-height:130%;">25</div><div style="line-height:130%;">26</div><div style="line-height:130%;">27</div><div style="line-height:130%;">28</div><div style="line-height:130%;">29</div><div style="line-height:130%;">30</div><div style="line-height:130%;">31</div><div style="line-height:130%;">32</div><div style="line-height:130%;">33</div><div style="line-height:130%;">34</div><div style="line-height:130%;">35</div><div style="line-height:130%;">36</div><div style="line-height:130%;">37</div><div style="line-height:130%;">38</div><div style="line-height:130%;">39</div><div style="line-height:130%;">40</div><div style="line-height:130%;">41</div><div style="line-height:130%;">42</div><div style="line-height:130%;">43</div><div style="line-height:130%;">44</div><div style="line-height:130%;">45</div><div style="line-height:130%;">46</div><div style="line-height:130%;">47</div><div style="line-height:130%;">48</div><div style="line-height:130%;">49</div><div style="line-height:130%;">50</div><div style="line-height:130%;">51</div><div style="line-height:130%;">52</div><div style="line-height:130%;">53</div><div style="line-height:130%;">54</div><div style="line-height:130%;">55</div><div style="line-height:130%;">56</div><div style="line-height:130%;">57</div><div style="line-height:130%;">58</div><div style="line-height:130%;">59</div><div style="line-height:130%;">60</div><div style="line-height:130%;">61</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?php</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// null 값 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'null 값 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">null</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">empty</span>(<span style="color:#066de2;">$val</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 선언만한 변수 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'선언만한 변수 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val2</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">empty</span>(<span style="color:#066de2;">$val2</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 공백 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'공백 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val3</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#63a35c;">''</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">empty</span>(<span style="color:#066de2;">$val3</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 숫자 테스트</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'숫자 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val4</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#0099cc;">1</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">empty</span>(<span style="color:#066de2;">$val4</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 빈 배열</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'빈 배열 테스트 : '</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val4</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">array</span>();</div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span>(<span style="color:#066de2;">empty</span>(<span style="color:#066de2;">$val4</span>)){</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'true'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">else</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;">{</div><div style="padding:0 6px;white-space:pre;line-height:130%;">  <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">'false'</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">}</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>위 코드를 보면 NULL, 공백, 0, 빈 배열은 값이 없는 걸로 간주해 TRUE를 리턴합니다.</p>
<p>값이 1이거나 배열에 어떠한 값이 있으면 비어있지 않은 걸로 간주해 FALSE를 리턴합니다.</p>
<p>isset, empty 모두 값 검증에 주로 쓰이며 조건문과 함께 쓰이는 경우가 많습니다.</p>
<p>!를 통해 해당 조건의 반대되는 경우를 조건으로 사용하기도 합니다.</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>
<h2>is_null()</h2>
<p>is_null()은 변수에 값이 NULL인지를 확인합니다.</p>
<p>변수에 값이 NULL 이거나 변수가 선언 안되어 있는 경우 TRUE를 리턴하고 아니면 FALSE를 리턴합니다.</p>
<p> </p>
<div class="colorscripter-code" style="color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;"><table class="colorscripter-code-table" style="margin:0;padding:0;border:none;background-color:#fafafa;" cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:6px;border-right:2px solid #e5e5e5;"><div style="margin:0;padding:0;text-align:right;color:#666;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="line-height:130%;">1</div><div style="line-height:130%;">2</div><div style="line-height:130%;">3</div><div style="line-height:130%;">4</div><div style="line-height:130%;">5</div><div style="line-height:130%;">6</div><div style="line-height:130%;">7</div><div style="line-height:130%;">8</div><div style="line-height:130%;">9</div><div style="line-height:130%;">10</div><div style="line-height:130%;">11</div><div style="line-height:130%;">12</div><div style="line-height:130%;">13</div><div style="line-height:130%;">14</div><div style="line-height:130%;">15</div><div style="line-height:130%;">16</div><div style="line-height:130%;">17</div><div style="line-height:130%;">18</div><div style="line-height:130%;">19</div><div style="line-height:130%;">20</div><div style="line-height:130%;">21</div></div></td><td style="padding:6px 0;text-align:left;"><div style="margin:0;padding:0;color:#010101;font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace;line-height:130%;"><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">&lt;?</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 데이터베이스에서 넘어오는 변수가 null로 오는 경우가 많습니다.</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 또는 class에서 변수들을 null로 처리하는 경우가 많습니다.</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#066de2;">$val</span> <span style="color:#0086b3;"></span><span style="color:#a71d5d;">=</span> <span style="color:#066de2;">NULL</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span> (is_null(<span style="color:#066de2;">$val</span>)) { </div><div style="padding:0 6px;white-space:pre;line-height:130%;">    <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">"해당 변수는 NULL이 맞습니다."</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">} <span style="color:#a71d5d;">else</span> {</div><div style="padding:0 6px;white-space:pre;line-height:130%;">    <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">"해당 변수는 NULL이 아닙니다."</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">} </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 출력결과 : 해당 변수는 NULL이 맞습니다.</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"> </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 변수가 선언 안되어있어도 True를 반환하지만 에러메시지가 동반되므로</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 반드시 에러 무시 구문을 사용하셔야 합니다.</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#a71d5d;">if</span> (@is_null(<span style="color:#066de2;">$val</span>)) { </div><div style="padding:0 6px;white-space:pre;line-height:130%;">    <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">"해당 변수는 NULL이 맞습니다."</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">} <span style="color:#a71d5d;">else</span> {</div><div style="padding:0 6px;white-space:pre;line-height:130%;">    <span style="color:#066de2;">echo</span> <span style="color:#63a35c;">"해당 변수는 NULL이 아닙니다."</span>;</div><div style="padding:0 6px;white-space:pre;line-height:130%;">} </div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#999999;">// 출력결과 : 해당 변수는 NULL이 맞습니다.</span></div><div style="padding:0 6px;white-space:pre;line-height:130%;"><span style="color:#ff3399;">?&gt;</span></div></div><div style="text-align:right;margin-top:-13px;margin-right:5px;font-size:9px;font-style:italic;"><a href="http://colorscripter.com/info#e" target="_blank" rel="nofollow noreferrer noopener">Colored by Color Scripter</a></div></td><td style="vertical-align:bottom;padding:0 2px 4px 0;"><a href="http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:#FFFFFF;" rel="nofollow noreferrer noopener"><span style="font-size:9px;background-color:#e5e5e5;color:#FFFFFF;padding:1px;">cs</span></a></td></tr></tbody></table></div>
<p> </p>
<p>위 코드를 보면 변$val에 NULL이 값으로 있는 경우 TRUE를 리턴합니다.</p>
<p>변수를 선언 하지 않은 경우에도 TRUE를 반환하지만 에러메세지가 출력되므로 반드시 오류 억제(에러 무시) 구분을 사용해야 합니다.</p>
<p> </p>

<div class="item_label_bar"></div>

<p> </p>

<p>참고 하실 수 있게 isset, empty, is_null의 차이점을 아래 표로 정리해봅니다.</p><p><br /></p>
<table style="max-height:99999px;margin:0px;padding:0px;border:0px;font-size:16px;line-height:inherit;font-family:InterUI, '-apple-system', BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans', Nunito, Lato, 'Open Sans', 'Myriad Pro', 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Hiragino Kaku Gothic Pro', 'Mplus 1p', 'Kozuka Gothic Pro', 'Meiryo UI', 'Noto Sans JP', 'MS PGothic', 'Noto Sans Korean', 'Apple SD Gothic Neo', 'Noto Sans KR', 'Nanum Gothic', AppleGothic, 'Malgun Gothic', Gulim, sans-serif;vertical-align:baseline;border-collapse:collapse;border-spacing:0px;color:rgb(53,53,53);background-color:rgb(255,255,255);"><thead style="max-height:99999px;margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;"><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;"><th style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font-style:inherit;font-variant:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;text-align:center;">값</th><th style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font-style:inherit;font-variant:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;text-align:center;">if($var)</th><th style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font-style:inherit;font-variant:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;text-align:center;">isset</th><th style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font-style:inherit;font-variant:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;text-align:center;">empty</th><th style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font-style:inherit;font-variant:inherit;font-size:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;text-align:center;">is_null</th></tr></thead><tbody style="max-height:99999px;margin:0px;padding:0px;border:0px;font:inherit;vertical-align:baseline;"><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=1</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;background-color:rgb(248,248,248);"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=””;</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=”0”;</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;background-color:rgb(248,248,248);"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=0;</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=NULL;</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;background-color:rgb(248,248,248);"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=array()</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr><tr style="max-height:99999px;margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);font:inherit;vertical-align:baseline;background-color:rgb(248,248,248);"><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">$var=array(1)</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">TRUE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td><td style="max-height:99999px;margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);font:inherit;vertical-align:baseline;text-align:center;">FALSE</td></tr></tbody></table><p> </p>
<ul><li>참고1 <a href="https://medium.com/@devpang20/php-isset-%EA%B3%BC-empty-%EC%9D%98-%EC%B0%A8%EC%9D%B4-88f680f64e2f" target="_blank" title="PHP isset() 과 empty()의 차이" rel="nofollow noreferrer noopener">https://medium.com/@devpang20/php-isset-%EA%B3%BC-empty-%EC%9D%98-%EC%B0%A8%EC%9D%B4-88f680f64e2f</a></li>
<li>참고2 <a href="https://winplz.tistory.com/entry/isset-empty-isnull-unset-%ED%95%A8%EC%88%98" target="_blank" title="[php]isset, empty, is_null, unset 함수" rel="nofollow noreferrer noopener">https://winplz.tistory.com/entry/isset-empty-isnull-unset-%ED%95%A8%EC%88%98</a></li>
<li>참고3 <a href="https://blog.naver.com/PostView.nhn?blogId=reviewer__&amp;logNo=221425844151" target="_blank" title="[PHP] 변수가 NULL인지 확인 - is_null()" rel="nofollow noreferrer noopener">https://blog.naver.com/PostView.nhn?blogId=reviewer__&amp;logNo=221425844151</a></li>
<li>참고4 <a href="https://lynmp.com/ko/article/ob811c9dc5mi" target="_blank" title="[php] Null 값 비교할 때 사용하는 함수 isset, empty, is_null 차이" rel="nofollow noreferrer noopener">https://lynmp.com/ko/article/ob811c9dc5mi</a></li>
</ul>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Fri, 17 Sep 2021 17:44:57 +0900</dc:date>
	</item>
	<item>
	<title>PHP : Undefined index: 오류 발생 시 해결 방법 / 오류메시지 해결</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=4</link>
	<description><![CDATA[<p>PHP 에러 중에 "Notice: Undefined index" 라는 오류메세지가 출력 될 때가 있습니다.</p>
<p> </p>
<p>이것은 php.ini 와 관련된 사항입니다.</p>
<p> </p>
<p>우선 어떤 경우에 발생하는지를 아래의 오류메세지를 예로 들어 얘기 하겠습니다.</p>
<p> </p>
<h3>예1.</h3>
<p class="console">
Notice: Undefined index: data in E:\public_html\test\index.php on line 5<br />
index.php 파일의 5번째 줄에 코딩은 아래와 같이 코딩을 했을 경우<br />
$sum = $data + 1;<br />
$data 를 미리 선언하지 않았기 때문에 $data를 알 수가 없어서 발생 합니다.
</p>
<p> </p>
<h3>예2.</h3>
<p class="console">
아래와 같이 REQUEST / SESSION 등을 사용 하는 경우에도 발생 할 수 있습니다.<br />
$sess_id = $_REQUEST["id"];<br />
$sess_id = $_SESSION["id"];<br />
위의 경우에는 아래와 같은 오류메세지를 출력됩니다.<br />
Notice: Undefined index: id in E:\public_html\test\index.php on line 2
</p>
<p> </p>
<h3>예3.</h3>
<p class="console">
board.php?page=1 로 페이지의 수를 GET으로 넘겨 줄 경우<br />
해당 page의 값을 이용한 코드가 아래와 같다면<br />
$page = ($_GET['page']) ? $_GET['page'] : 1;<br />
위의 경우에는 아래와 같은 오류메세지를 출력됩니다.<br />
Notice: Undefined index: page in E:\public_html\test\index.php on line 30
</p>
<p> </p>
<p>위와 같은 오류메세지가 발생하는 가장 큰 원인은 표준 코딩이 되지 않았기 때문에 발생합니다.</p>
<p> </p>
<p>아주 엄격하게 코딩을 하려면 모든 변수를 선언한 후에 사용하면 되지만, 전달되어 들어오는 변수의 경우 미리 선언하기 어려운 경우도 있습니다.</p>
<p> </p>
<div class="item_label_bar"></div>
<p> </p>
<h3>해결방법1. (php.ini 수정 권한이 있는 경우)</h3>
<div class="ex-box">
<p>이럴경우, php.ini 파일을 수정하면 쉽게 해결이 가능합니다.</p>
<p> </p>
<p>php.ini 파일을 열고 error_reporting 부분을 찾아보면 아래와 같이 되어있는 경우가 많습니다.</p>
<p> </p>
<p>error_reporting = E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT</p>
<p> </p>
<p>E_ALL은 모든 에러에 대하여 출력한다는 뜻입니다.</p>
<p> </p>
<p>E_DEPRECATED 는 특정기능/함수가 앞으로는 지원되지 않을 수 있는 경우 표시됩니다.</p>
<p> </p>
<p>해당 문자열 앞에 ~가 붙으면 해당 오류는 출력하지 않는다는 뜻입니다.</p>
<p> </p>
<p>그래서 아래와 같이 &amp; ~E_NOTICE  를 추가해 주면 앞어살펴본 변수선언 관련 에러가 표시되지 않습니다.</p>
<p> </p>
<p>error_reporting = E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT &amp; ~E_NOTICE</p>
<p> </p>
<p>php.ini 를 수정한 후에는 웹서버를 재시작 해주시면 적용됩니다.</p>
</div>
<p> </p>
<h3>해결방법2. (php.ini 수정권한이 없는 경우-1)</h3>
<div class="ex-box">
<p>공통으로 사용되는 include 되는 파일 최상단에 아래와 같이 추가 합니다.</p>
<p> </p>
<p>PHP에서 지원하는 error_reporting() 함수 : 오류 보고 수준을 설정하는 PHP 함수를 이용합니다.</p>
<p> </p>
<p>error_reporting(0);</p>
<p> </p>
<p>모든 오류출력을 끄게 됩니다.</p>
</div>
<p> </p>
<h3>해결방법3.(php.ini 수정권한이 없는 경우-2)</h3>
<div class="ex-box">
<p>모든 변수에 대해서 미리 선언해 주는 방법입니다.</p>
<p> </p>
<p>예1의 경우 아래 참고</p>
<p> </p>
<p>$data = 0; 이라는 식으로 미리 선언을 해주면 됩니다.</p>
<p> </p>
<p>$sum = $data + 1;</p>
<p> </p>
<p>예2, 예3 의 경우 아래 참고(isset() 설정된 변수인지 확인하는 함수 이용))</p>
<p> </p>
<p>$sess_id = $_REQUEST["id"];</p>
<p> </p>
<p>=&gt; $sess_id = isset($_REQUEST["id"]) ? $_REQUEST["id"] : '';</p>
<p> </p>
<p>$sess_id = $_SESSION["id"];</p>
<p> </p>
<p>=&gt; $sess_id = isset($_SESSION["id"]) ? $_SESSION["id"] : '';</p>
<p> </p>
<p>$page = ($_GET['page']) ? $_GET['page'] : 1;</p>
<p> </p>
<p>=&gt; isset($_GET['page']) ? $_GET['page'] : 1;</p>
</div>
<p> </p>

<ul><li>참고1 <a href="https://doolyit.tistory.com/138" target="_blank" title="PHP 에서 Undefined index: 오류발생시 해결방법 /PHP오류메시지 해결" rel="nofollow noreferrer noopener">https://doolyit.tistory.com/138</a></li>
<li>참고2 <a href="https://humahumahuma.tistory.com/168" target="_blank" title="PHP url Notice: Undefined index 에러" rel="nofollow noreferrer noopener">https://humahumahuma.tistory.com/168</a></li>
</ul>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Mon, 13 Sep 2021 13:46:50 +0900</dc:date>
	</item>
	<item>
	<title>PHP 환경변수정리</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=3</link>
	<description><![CDATA[<h2>사용 목적 :</h2>
<div class="ex-box">
<p>PHP 개발 중 서버 정보를 확인해야할 때 사용 합니다.</p>
</div>

<hr /><h2>사용 방법 :</h2>
<div class="ex-box">
<p>$_SERVER["확인할 환경변수"]</p>
</div>

<hr /><h2>환경변수 :</h2>
<div class="ex-box">
<p>$_SERVER["SERVER_PROTOCOL"]; // 사용된 서버 프로토콜 =&gt; HTTP/1.1</p>
<p> </p>
<p>$_SERVER["SERVER_NAME"]; // 현재접속중 인 서버 이름을 읽어 온다.(도메인)</p>
<p> </p>
<p>$_SERVER["SERVER_PORT"]; // 웹 서버가 사용하는  포트를 읽어온다.</p>
<p> </p>
<p>$_SERVER["SERVER_SOFTWARE"]; // 웹서버의 이름과 버전을 ("이름/버전")식으로 나타낸다.</p>
<p>    Apache/1.3.23 (Unix) PHP/4.1.2 mod_fastcgi/2.2.10 mod_throttle/3.1.2 mod_ssl/2.8.6 OpenSSL/0.9.6c</p>
<p> </p>
<p>$_SERVER["SERVER_ADDR"]; // 현재 접속중인 웹서버의 IP주소를 담고 있다.</p>
<p> </p>

<p>$_SERVER["REQUEST_URI"]; // 이 페이지를 접근하기 위해 사용한 URI. 예: "/index.html".</p>
<p> </p>
<p>$_SERVER["REQUEST_METHOD"]; // 페이지가 요구될 때 사용된 method: 예: "GET", "HEAD", "POST", "PUT"</p>
<p> </p>
<p>$_SERVER["REMOTE_ADDR"]; // 사용자의 IP주소 =&gt; xxx.xxx.xxx.xxx</p>
<p> </p>
<p>$_SERVER["REMOTE_PORT"]; // 사용자의 시스템이 웹서버와 통신하고 있는 port 번호</p>
<p> </p>

<p>$_SERVER["DOCUMENT_ROOT"]; // 현재 스크립트가 샐행중인 document root 디렉토리. 서버의 설정 파일에 정의되어 있다.</p>
<p> </p>
<p>$_SERVER["QUERY_STRING"]; // 해당 페이지를 접근할 때 사용된 query string</p>
<p>    get방식의 파일명 뒤에 붙어서 넘어오는 값 =&gt; ?user=???&amp;name=??? (반드시get방식으로 넘겨야됨)</p>
<p> </p>
<p>$_SERVER["PHP_SELF"]; // document root를 기준으로 한 현재 실행중인 스크립트의 파일 이름. ( /test.php 와 같이 표시된다. )</p>
<p>    *파일명만 가져올때 : basename($_SERVER["PHP_SELF"]);</p>
<p> </p>

<p>$_SERVER["HTTP_REFERER"]; // 이동 이전 페이지의 경로를 기억 한다.</p>
<p> </p>
<p>$_SERVER["HTTP_USER_AGENT"]; // POST방식을 이용하여 검색문에 정보가 들어있는 경우에 그 정보의 타입을 나타냅니다.</p>
<p> </p>
<p>$_SERVER["HTTP_HOST"]; // 사용자가 입력한 주소목록을 출력</p>
<p> </p>
<p>$_SERVER["HTTP_ACCEPT_ENCODING"] // 인코딩 방식 =&gt; gzip, deflate</p>
<p> </p>
<p>$_SERVER["HTTP_ACCEPT_LANGUAGE"]] // 언어 =&gt; ko</p>
<p> </p>

<p>$HTTP_COOKIE_VARS[쿠키이름]; // 해당 "쿠키이름"에 저장되어 있는 값을 담고있다.</p>
<p> </p>
<p>$HTTP_GET_VARS[변수명];  // GET형식으로 받은 해당 "변수명"에 저장되어 있는 값을 담고있다.</p>
<p> </p>
<p>$HTTP_POST_VARS[변수명] ; //POST형식으로 받은 해당 "변수명"에 저장되어 있는 값을 담고있다.</p>
<p> </p>

<p>$_SERVER["SCRIPT_NAME"]; // 현재 스크립트의 경로. 이것은 해당 페이지가 자기 자신을 가리킬 때 사용하면 유용하다.</p>
<p>    ( /test.php 와 같이 표시된다. )</p>
<p> </p>
<p>$_SERVER["SCRIPT_FILENAME"]; // 현재 실행되고 있는 스크립트의 절대 경로명</p>
<p>    ( 리눅스의 경우 /home/test/public_html/test.php 와 같이 표시된다. )</p>
<p> </p>

<p>$_SERVER["GATEWAY_INTERFACE"] // cGI 정보 =&gt; CGI/1.1</p>
<p> </p>
<p>$_SERVER["APPL_PHYSICAL_PATH"] // 현재페이지의 실제 파일 주소 =&gt; D:\webapp/</p>
<p> </p>
</div>
<p> </p>
<ul><li>참고1. <a href="https://dydwo15.tistory.com/m/entry/php-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98%EC%A0%95%EB%A6%AC" target="_blank" title="php 환경변수정리" rel="nofollow noreferrer noopener">https://dydwo15.tistory.com/m/entry/php-환경변수정리</a></li>
<li>참고2. <a href="https://bogyum-uncle.tistory.com/m/91" target="_blank" title="[PHP] $_SERVER 환경변수" rel="nofollow noreferrer noopener">https://bogyum-uncle.tistory.com/m/91</a></li>
</ul>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Mon, 04 Jan 2021 17:28:54 +0900</dc:date>
	</item>
	<item>
	<title>$$ 가변변수 - 변수이름 동적 변경</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=2</link>
	<description><![CDATA[<h3>1. $$ 가변변수 -  개념</h3>
<p> </p>
<p>가변변수는 변수의 값이 가지는 이름을 가진 변수의 값을 이용하고자 할 경우 사용됩니다.</p>
<p>가변변수를 잘 활용하면 복잡해질 소스코드를 간편하게 바꿀수도 있습니다.</p>
<p>가변 변수 이용 시 변수이름을 동적을 변경할 수 있습니다.</p>
<p>$변수명 으로 선언한 후 앞에 다시 $를 붙여서 $$가 있을 경우 가변변수로 이용이 가능합니다.</p>


<div class="item_label_bar"></div>

<p> </p>
<h3>2. $$ 가변변수 - 예제</h3>
<p> </p>


<p>◈ PHP 코드</p>
<p> </p>
<p class="console">
&lt;?php<br />
       $test = "abc";<br />
       $$test = 100;<br />
       echo "test 값 : ".$test."&lt;br&gt;";<br />
       echo "test 가변 변수 값 : ".$abc;<br />
?&gt;
</p><p> </p>
<p>◈ 결과화면</p>
<p> </p>
<p class="console">
test 값 : abc<br />
test 가변 변수 값 : 100<br /></p>
<p> </p>
<p>◈ 설명</p>
<p> </p>
<p>$test를 abc라는 문자열을 선언해서 echo로 화면출력 했을 경우는  abc가 나옵니다.</p>
<p>여기에 $를 하나 더 붙여서 $$test 를 100으로 주면 결국 이 말은 $$test = $abc 라는 말이 됩니다.</p>
<p>그래서 $abc = 100 이기 때문에 $abc를 화면 출력할 경우 100을 출력하게 됩니다.</p>
<p> </p>

<ul><li>참고 <a href="https://devjhs.tistory.com/425" target="_blank" title="[php] $$ 가변변수 - 변수이름 동적 변경" rel="nofollow noreferrer noopener">https://devjhs.tistory.com/425</a></li>
</ul>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Sun, 03 Jan 2021 21:57:14 +0900</dc:date>
	</item>
	<item>
	<title>PHP : XML 에러 - This page contains the following errors: EntityRef: expecting ';</title>
	<link>http://moneybug.co.kr/bbs/board.php?bo_table=php_tip&amp;wr_id=1</link>
	<description><![CDATA[<p>안녕하세요. </p><p><br /></p><p>XML로 RSS 구현 하시다 보면 아래와 같은 에러가 발생하는 경우가 있습니다.</p><p><span style="font-family:'Malgun Gothic';white-space:pre;"><br /></span></p><p><span style="font-family:'Malgun Gothic';white-space:pre;"><b>This page contains the following errors:</b></span> </p><p><span style="font-family:'Malgun Gothic';white-space:pre;"><br /></span></p><div style="white-space:pre;font-family:monospace;">error on line 6 at column 32: EntityRef: expecting ';'</div><div style="white-space:pre;font-family:monospace;"><span style="font-family:'Malgun Gothic';"><br /></span></div><div style="white-space:pre;font-family:monospace;"><span style="font-family:'Malgun Gothic';"><b>Below is a rendering of the page up to the first error.</b></span></div><div style="white-space:pre;font-family:monospace;"><span style="font-family:'Malgun Gothic';"><br /></span></div><div style="white-space:pre;font-family:monospace;"><span style="font-family:'Malgun Gothic';">소스 보기 하면 정상적으로 나오는 것 같아 왜 그런지 못 찾는 경우가 많습니다.</span></div><div style="white-space:pre;font-family:monospace;"><span style="font-family:'Malgun Gothic';"><br /></span></div><div style="white-space:pre;"><span style="font-family:'Malgun Gothic';">이런 경우엔 보통 특수 문자 때문에 그런 경우가 많습니다.</span></div><div style="white-space:pre;"><span style="font-family:'Malgun Gothic';"><br /></span></div><div style="white-space:pre;"><span style="font-family:'Malgun Gothic';">아래의 것을 참고하셔서 변환(치환)해 주셔야 합니다.</span></div><div style="white-space:pre;"><span style="font-family:'Malgun Gothic';"><br /></span></div><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">1. 공백문자

수평 탭</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">09 
line-feed</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">0A 
carrage-return</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">0D 
ASCII space</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">90</span></span></div><span style="font-family:'Malgun Gothic';white-space:pre;">
============================</span><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">
2. Escape 문자

&amp;</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;amp; 
&lt;</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;lt; 
&gt;</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;gt; 
'</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;apos; 
"</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;quot;</span></span></div><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">엔터</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt; </span><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">&amp;#10;</span></span> </div><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">
============================

특수문자 (Special Characters)

3. XML 예약문자 

&lt;, &gt;, &amp;는 XML tag 표시와 entity를 표시하는 XML 예약문자로, XML 문서에 그대로 사용할 수 없기 때문에 다음과 같이 사용합니다.

&lt; (Less Than Sign) =&gt; &amp;lt; 

&gt; (Greater Than Sign) =&gt; &amp;gt; 

&amp; (ampersand)</span></span><span style="font-family:'Malgun Gothic';white-space:pre;"> =&gt;</span><span style="white-space:pre;font-family:'Malgun Gothic';"> &amp;amp;</span></div><div><span style="white-space:pre;font-family:'Malgun Gothic';"><br /></span></div><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;">변환 방법은 str_replace('&amp;', '&amp;amp;', $str) 의 형식으로 하여 변환(치환)하시면 됩니다.</span></span></div><div><span style="font-family:'Malgun Gothic';"><span style="white-space:pre;"><br /></span></span></div>]]></description>
	<dc:creator>머니버그</dc:creator>
		<dc:date>Wed, 09 Dec 2020 22:43:13 +0900</dc:date>
	</item>
</channel>
</rss>