๋šœ๋ถ€๋‹ˆ์˜ Devlog

[PHP] ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ •๋ฆฌ (2) (feat. ์—ฐ์‚ฐ์ž, ์ œ์–ด๋ฌธ)

by ๋šœ๋ถ€๋‹ˆ

PHP

1. ์—ฐ์‚ฐ์ž

์—ฐ์‚ฐ์ž๋ž€ ๊ฐ’์— ๋Œ€ํ•ด์„œ ์–ด๋–ค ์ž‘์—…์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ์ง€์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐํ˜ธ์ž…๋‹ˆ๋‹ค.

1.1. ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž

์‚ฌ์น™ ์—ฐ์‚ฐ์„ ๋‹ค๋ฃจ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ์ž

์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ์„ค๋ช…
+ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋”ํ•จ.
- ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋บŒ.
* ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ณฑํ•จ.
/ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆ”.
% ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ทธ ๋‚˜๋จธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•จ.
** ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์— ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ์ œ๊ณฑํ•จ.

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

<?php
$num_01 = 10;
$num_02 = 4;

echo "10 + 4 = ".($num_01 + $num_02)."<br />"; // 14
echo "10 - 4 = ".($num_01 - $num_02)."<br />"; // 6
echo "10 * 4 = ".($num_01 * $num_02)."<br />"; // 40
echo "10 / 4 = ".($num_01 / $num_02)."<br />"; // 2.5
echo "10 % 4 = ".($num_01 % $num_02)."<br />"; // 2
echo "10 ** 4 = ".($num_01 ** $num_02)."<br />"; // 10000
?>

 

1.2. ๋Œ€์ž… ์—ฐ์‚ฐ์ž

1.2.1. ๋Œ€์ž… ์—ฐ์‚ฐ์ž

๋ณ€์ˆ˜์— ๊ฐ’์„ ๋Œ€์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž์ด๋ฉฐ, ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ์€ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์ž…๋‹ˆ๋‹ค.

๋Œ€์ž… ์—ฐ์‚ฐ์ž ์„ค๋ช…
= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋Œ€์ž…ํ•จ.

1.2.3. ๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž

๋Œ€์ž… ์—ฐ์‚ฐ์ž์™€ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ๋“ฑ์„ ๊ฒฐํ•ฉํ•œ ํ˜•ํƒœ์ด๋ฉฐ, ํ”ผ์—ฐ์‚ฐ์ž๋“ค์˜ ๊ฒฐํ•ฉ ๋ฐฉํ–ฅ์€ ์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์ž…๋‹ˆ๋‹ค.

๋ณตํ•ฉ ๋Œ€์ž… ์—ฐ์‚ฐ์ž ์„ค๋ช…
+= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋”ํ•œ ํ›„, ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
-= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋บ€ ํ›„, ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
*= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ณฑํ•œ ํ›„, ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
/= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
%= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆˆ ํ›„, ๊ทธ ๋‚˜๋จธ์ง€๋ฅผ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
.= ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฌธ์ž์—ด์— ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•œ ํ›„, ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
<<= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ๋ฅผ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋งŒํผ ์ „๋ถ€์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
>>= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ์™€ ๋ถ€ํ˜ธ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋งŒํผ ์ „๋ถ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚จ ํ›„, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— ๋Œ€์ž…ํ•จ.
&= ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹๊ณผ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹์ด ๋ชจ๋‘ true์ด๋ฉด ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— true๋ฅผ ๋Œ€์ž…ํ•˜๊ณ , ๊ทธ ์™ธ์—๋Š” false๋ฅผ ๋Œ€์ž…ํ•จ.
!= ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹์ด๋‚˜ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹์ด ์ค‘ ํ•˜๋‚˜๋ผ๋„ true์ด๋ฉด ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— true๋ฅผ ๋Œ€์ž…ํ•˜๊ณ , ๊ทธ ์™ธ์—๋Š” false๋ฅผ ๋Œ€์ž…ํ•จ.
^= ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹๊ณผ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋…ผ๋ฆฌ์‹์ด ์„œ๋กœ ๋‹ค๋ฅด๋ฉด ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์— true๋ฅผ ๋Œ€์ž…ํ•˜๊ณ , ๊ทธ ์™ธ์—๋Š” false๋ฅผ ๋Œ€์ž…ํ•จ.

1.3. ์ฆ๊ฐ ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ 1์”ฉ ์ฆ๊ฐ€ ํ˜น์€ ๊ฐ์†Œ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์„ค๋ช…
++$var ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•จ.
$var++ ๋จผ์ € ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‚˜์„œ, ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œํ‚ด.
--$var ๋จผ์ € ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ 1 ๊ฐ์†Œ์‹œํ‚จ ํ›„์— ํ•ด๋‹น ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•จ.
$var-- ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์—๊ฒŒ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ๋‚˜๋ˆ”.

1.4. ๋น„๊ต ์—ฐ์‚ฐ์ž

1.4.1. ๋น„๊ต ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž ์‚ฌ์ด์˜ ์ƒ๋Œ€์ ์ธ ํฌ๊ธฐ๋ฅผ ํŒ๋‹จํ•˜์—ฌ ์ฐธ(true)๊ณผ ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋น„๊ต ์—ฐ์‚ฐ์ž ์„ค๋ช…
== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
=== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™๊ณ , ๊ฐ™์€ ํƒ€์ž…์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
!= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
<> ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
!== ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž์™€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์ง€ ์•Š๊ฑฐ๋‚˜, ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
< ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
<= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
> ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ํฌ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.
>= ์™ผ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฅธ์ชฝ์˜ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ.

1.4.2. ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋น„๊ต

ํ”ผ์—ฐ์‚ฐ์ž1 ํ”ผ์—ฐ์‚ฐ์ž2 ๋น„๊ต ๊ทœ์น™
bool, null ๋ชจ๋‘ ๋‘˜ ๋‹ค ๋ถˆ๋ฆฌ์–ธ์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋น„๊ตํ•จ.
string, resource,
integer, float
string, resource,
integer, float
์ˆซ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ฆฌ์†Œ์Šค๋Š” ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋น„๊ตํ•จ.
object object ๋‚ด์žฅ ํด๋ž˜์Šค๋Š” ์ž์‹ ์˜ ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ผ๋ฆฌ ๋น„๊ตํ•  ์ˆ˜๋Š” ์—†์Œ.
array array ๋ฐฐ์—ด๋ผ๋ฆฌ์˜ ๋น„๊ต๋Š” ๊ฐ™์€ ํ‚ค๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ’์„ ์„œ๋กœ ๋น„๊ตํ•จ.
์ด๋•Œ ํ”ผ์—ฐ์‚ฐ์ž1 ๋ฐฐ์—ด์˜ ํ‚ค๊ฐ€ ํ”ผ์—ฐ์‚ฐ์ž2 ๋ฐฐ์—ด์— ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋น„๊ตํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๋ฐฐ์—ด ์š”์†Œ์˜ ์ˆ˜๊ฐ€ ์ ์€ ์ชฝ์ด ์ž‘๋‹ค๊ณ  ํŒ๋‹จ๋จ.
array ๋ชจ๋‘ ๋ฐฐ์—ด์ด ํ•ญ์ƒ ํฌ๋‹ค๊ณ  ํŒ๋‹จ๋จ.
object ๋ชจ๋‘ ๊ฐ์ฒด๊ฐ€ ํ•ญ์ƒ ํฌ๋‹ค๊ณ  ํŒ๋‹จ๋จ.

1.5. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ์‹์„ ํŒ๋‹จํ•˜์—ฌ ์ฐธ(true)๊ณผ ๊ฑฐ์ง“(false)์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

and, or, xor ์—ฐ์‚ฐ์ž๋Š” ๋‘ ๊ฐœ์˜ ์—ฐ์‚ฐ์ž๋ฅผ ๊ฐ€์ง€๋Š” ์ดํ•ญ ์—ฐ์‚ฐ์ž์ด๋ฉฐ, ! ์—ฐ์‚ฐ์ž๋Š” ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋‹จ ํ•˜๋‚˜๋ฟ์ธ ๋‹จํ•ญ ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์„ค๋ช…
and ๋…ผ๋ฆฌ์‹์ด ๋ชจ๋‘ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (AND ์—ฐ์‚ฐ)
or ๋…ผ๋ฆฌ์‹ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (OR ์—ฐ์‚ฐ)
xor ๋…ผ๋ฆฌ์‹์ด ์„œ๋กœ ๋‹ค๋ฅด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (XOR ์—ฐ์‚ฐ)
&& ๋…ผ๋ฆฌ์‹์ด ๋ชจ๋‘ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (AND ์—ฐ์‚ฐ)
|| ๋…ผ๋ฆฌ์‹ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (OR ์—ฐ์‚ฐ)
! ๋…ผ๋ฆฌ์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด๋ฉด ๊ฑฐ์ง“์„, ๊ฑฐ์ง“์ด๋ฉด ์ฐธ์„ ๋ฐ˜ํ™˜ํ•จ. (NOT ์—ฐ์‚ฐ)

๋‹ค์Œ์€ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์ง„๋ฆฌํ‘œ์ž…๋‹ˆ๋‹ค.

A B A and B (A && B) A or B (A || B) A xor B !A
true true true true false false
true false false true true false
false true false true true true
false false false false false true

1.6. ๋น„ํŠธ ์—ฐ์‚ฐ์ž

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ๋น„ํŠธ (bit) ๋‹จ์œ„๋กœ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋น„ํŠธ ๋‹จ์œ„๋กœ ์ „์ฒด ๋น„ํŠธ๋ฅผ ์™ผ์ชฝ์ด๋‚˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ๋•Œ๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋น„ํŠธ ์—ฐ์‚ฐ์ž ์„ค๋ช…
& ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ด๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•จ. (๋น„ํŠธ AND ์—ฐ์‚ฐ)
| ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•จ. (๋น„ํŠธ OR ์—ฐ์‚ฐ)
^ ๋Œ€์‘๋˜๋Š” ๋น„ํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด 1์„ ๋ฐ˜ํ™˜ํ•จ. (๋น„ํŠธ XOR ์—ฐ์‚ฐ)
~ ๋น„ํŠธ๋ฅผ 1์ด๋ฉด 0์œผ๋กœ, 0์ด๋ฉด 1๋กœ ๋ฐ˜์ „์‹œํ‚ด. (๋น„ํŠธ NOT ์—ฐ์‚ฐ)
<< ์ง€์ •ํ•œ ์ˆ˜๋งŒํผ ๋น„ํŠธ๋ฅผ ์ „๋ถ€ ์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ด. (left shift ์—ฐ์‚ฐ)
>> ๋ถ€ํ˜ธ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ง€์ •ํ•œ ์ˆ˜๋งŒํผ ๋น„ํŠธ๋ฅผ ์ „๋ถ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™์‹œํ‚ด. (right shift ์—ฐ์‚ฐ)

1.7. ๊ธฐํƒ€ ์—ฐ์‚ฐ์ž

1.7.1. ์‚ผํ•ญ ์—ฐ์‚ฐ์ž

์œ ์ผํ•˜๊ฒŒ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์„ธ ๊ฐœ๋‚˜ ๊ฐ€์ง€๋Š” ์กฐ๊ฑด ์—ฐ์‚ฐ์ž์ด๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์”๋‹ˆ๋‹ค.

์กฐ๊ฑด์‹ ? ๋ฐ˜ํ™˜๊ฐ’1 : ๋ฐ˜ํ™˜๊ฐ’2

์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ด๊ฐ’์ด ์ฐธ์ด๋ฉด ๋ฐ˜ํ™˜๊ฐ’1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๊ฑฐ์ง“์ด๋ฉด ๋ฐ˜ํ™˜๊ฐ’2๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

<?php
$num_01 = 10;
$num_02 = 4;
$result = ($num_01 > $num_02) ? $num_01 : $num_02;
echo "๋‘˜ ์ค‘์— ๋” ํฐ ์ˆ˜๋Š” {$result} ์ž…๋‹ˆ๋‹ค.";
?>

์‹ค์ œ๋กœ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1.7.2. ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ž

๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ž(.)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, echo() ํ•จ์ˆ˜์—์„œ๋Š” ์‰ผํ‘œ ์—ฐ์‚ฐ์ž(,)๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<?php
$str_01 = "Hello";
$str_02 = "World";

echo $str_01.$str_02."<br />";
echo $str_01,$str_02;
?>

์‹ค์ œ๋กœ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

1.7.3. ๋ฐฐ์—ด ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž

๋ฐฐ์—ด ํ•ฉ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž(+)๋Š” ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์˜ค๋Š” ๋‘ ๋ฐฐ์—ด์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฐฐ์—ด์˜ ํ‚ค ๊ฐ’ ์œ ์ง€ํ•˜๋ฉด์„œ, ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋ฐฐ์—ด์„ ๋ง๋ถ™์ด๋Š” ๋ฐฉ์‹์„ ์ทจํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ˆ˜ํ–‰์‹œ์ผœ๋ณด๋Š” ๊ฒƒ์ด ์ดํ•ด๊ฐ€ ๋” ๋น ๋ฅผ ๊ฒƒ ๊ฐ™๋„ค์š”! ๐Ÿ˜๐Ÿ˜

<?php
$arr_01 = array("1st" => "PHP", "2nd" => "MySQL");
$arr_02 = array("1st" => "HTML", "2nd" => "CSS", "3rd" => "JavaScript");

$result_01 = $arr_01 + $arr_02; // [PHP, MySQL, JavaScript]
var_dump($result_01);
$result_02 = $arr_02 + $arr_01; // [HTML, CSS, JavaScript]
var_dump($result_02);
?>

์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ˆ˜ํ–‰์‹œ์ผœ๋ณด๋‹ˆ ์–ด๋–ค ์—ฐ์‚ฐ์ž์ธ์ง€ ์ดํ•ด๊ฐ€ ๋˜์‹œ๋‚˜์š”?

ํ‚ค ๊ฐ’์ด ๋™์ผํ•œ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด์„œ๋งŒ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋œ๋‹ค๊ณ  ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ํ‚ค ๊ฐ’์„ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๐Ÿค”๐Ÿค”

<?php
$arr_01 = array("1" => "PHP", "2" => "MySQL");
$arr_02 = array("3" => "HTML", "4" => "CSS", "5" => "JavaScript");

$result_01 = $arr_01 + $arr_02; // [PHP, MySQL, HTML, CSS, JavaScript]
var_dump($result_01);
$result_02 = $arr_02 + $arr_01; // [HTML, CSS, JavaScript, PHP, MySQL]
var_dump($result_02);
?>

์ฝ”๋“œ๋ฅผ ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•œ ํ›„ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค ๊ฐ’ ๊ธฐ์ค€์ด๋ผ๋Š” ๊ฒƒ ๊ผญ ๊ธฐ์–ตํ•˜์„ธ์š”!! ๐Ÿ˜Ž๐Ÿ˜Ž

๋งŒ์•ฝ ํ‚ค ๊ฐ’์— ๋Œ€ํ•ด ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๐Ÿค”๐Ÿค”

<?php
$arr_01 = array("PHP", "MySQL");
$arr_02 = array("HTML", "CSS", "JavaScript");

$result_01 = $arr_01 + $arr_02; // [PHP, MySQL, JavaScript]
var_dump($result_01);
$result_02 = $arr_02 + $arr_01; // [HTML, CSS, JavaScript]
var_dump($result_02);
?>

์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ ๋ฒˆํ˜ธ๋ฅผ ์ž๋™์œผ๋กœ ๋ถ€์—ฌํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.7.4. instanceof ์—ฐ์‚ฐ์ž

instanceof ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌํ•ญ์„ ํ™•์ธํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค(class)์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด(object)์ธ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ
  2. ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค(parent class)์—์„œ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์ธ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ
  3. ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค(instance)์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ
  4. ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค(interface)๋กœ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค(object instance)์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ

instanceof ์—ฐ์‚ฐ์ž์˜ ์‚ฌ์šฉ ์šฉ๋„๋ฅผ ์ž์„ธํžˆ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์ด ํ•„์š”ํ•˜๋ฏ€๋กœ,

์ง€๊ธˆ์€ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ€๋„ ์ƒ๊ด€์—†์–ด์š”! ์ฐธ๊ณ ๋งŒ ํ•˜์„ธ์š”. ๐Ÿ˜๐Ÿ˜

<?php
interface Interface01{}
class Class01{}
class Class02 extends Class01 implements Interface01{}

/* ์–ด๋–ค ํด๋ž˜์Šค(class)์—์„œ ์ƒ์„ฑ๋œ ๊ฐ์ฒด(object)์ธ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ */
$var_01 = new Class01; // Class01 ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ.
var_dump($var_01 instanceof Class01);     // true
var_dump($var_01 instanceof Class02);     // false

/* ๋ถ€๋ชจ ํด๋ž˜์Šค(parent class)์—์„œ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์ธ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ */
$var_02 = new Class02; // Class02 ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ.
var_dump($var_02 instanceof Class01);     // true
var_dump($var_02 instanceof Class02);     // true

/* ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค(instance)์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ */
$var_03 = new Class01; // Class01 ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ.
var_dump(!($var_03 instanceof Class02));  // true

/* ์ธํ„ฐํŽ˜์ด์Šค(interface)๋กœ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค(object instance)์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ํ™•์ธํ•  ๋•Œ */
$var_04 = new Class02; // Class02 ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•จ.
var_dump($var_04 instanceof Class02);     // true
var_dump($var_04 instanceof Interface01); // true
?>

 

2. ์ œ์–ด๋ฌธ

ํ‘œํ˜„์‹ ์ค‘์—์„œ๋„ ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆœ์ฐจ์ ์ธ ํ๋ฆ„์„ ์ œ์–ดํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น๋ฌธ์„ ์ œ์–ด๋ฌธ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

2.1. ์กฐ๊ฑด๋ฌธ

์กฐ๊ฑด๋ฌธ์ด๋ž€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2.1.1. if๋ฌธ

if๋ฌธ์€ ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ(true)์ด๋ฉด ์ฃผ์–ด์ง„ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉฐ, ๊ฑฐ์ง“(false)์ด๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

if (์กฐ๊ฑด์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.1.2. else๋ฌธ

if๋ฌธ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉฐ, if๋ฌธ์˜ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“(false) ์ผ ๋•Œ ์ฃผ์–ด์ง„ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

if (์กฐ๊ฑด์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}
else {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.1.3. else if ๋ฌธ

else if๋ฌธ์€ if๋ฌธ์ฒ˜๋Ÿผ ์กฐ๊ฑด์‹์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,

if๋ฌธ๊ณผ else๋ฌธ ์‚ฌ์ด์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ๋˜์–ด ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

else if๋ผ๊ณ  ์ ์–ด๋„ ๋˜๊ณ , elseif๋ผ๊ณ  ์ ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค.

if (์กฐ๊ฑด์‹1) {
    ์กฐ๊ฑด์‹1์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}
else if (์กฐ๊ฑด์‹2) {
    ์กฐ๊ฑด์‹2์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}
else {
    ์กฐ๊ฑด์‹1์˜ ๊ฒฐ๊ณผ๋„ ๊ฑฐ์ง“์ด๊ณ , ์กฐ๊ฑด์‹2์˜ ๊ฒฐ๊ณผ๋„ ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.1.4. switch๋ฌธ

switch๋ฌธ์€ if-else๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฃผ์–ด์ง„ ์กฐ๊ฑด ๊ฐ’์— ๋”ฐ๋ผ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค.

switch๋ฌธ์€ if-else๋ฌธ๋ณด๋‹ค ๊ฐ€๋…์„ฑ ์ธก๋ฉด์—์„œ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ case์ ˆ์˜ ๊ฐ’์€ ์ผ์น˜ ์—ฐ์‚ฐ์ž(===)๊ฐ€ ์•„๋‹Œ ๋™๋“ฑ ์—ฐ์‚ฐ์ž(==)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Š์Šจํ•˜๊ฒŒ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์–ด๋– ํ•œ case ์ ˆ์—๋„ ํ•ด๋‹นํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ default ์ ˆ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ฐ case์ ˆ ๋ฐ default ์ ˆ์€ ๋ฐ˜๋“œ์‹œ break ํ‚ค์›Œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (switch ํƒˆ์ถœ์„ ์œ„ํ•ด!)

switch (์กฐ๊ฑด ๊ฐ’)
{
    case ๊ฐ’1:
        ์กฐ๊ฑด ๊ฐ’์ด ๊ฐ’1์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
        break;
    case ๊ฐ’2:
        ์กฐ๊ฑด ๊ฐ’์ด ๊ฐ’2์ผ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
        break;
    ...
    default:
        ํ•ด๋‹น case๊ฐ€ ์—†์„ ๋•Œ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
        break;
}

2.2. ๋ฐ˜๋ณต๋ฌธ

๋ฐ˜๋ณต๋ฌธ์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ ๊ฐ™์€ ๋ช…๋ น์„ ์ผ์ • ํšŸ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…๋ น๋ฌธ์ž…๋‹ˆ๋‹ค.

2.2.1. while๋ฌธ

while๋ฌธ์€ ์กฐ๊ฑด์‹์ด ์ฐธ(true)์ธ ๊ฒฝ์šฐ์—๋งŒ ๋‚ด๋ถ€์˜ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

while (์กฐ๊ฑด์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.2.2. do-while๋ฌธ

do-while๋ฌธ์€ ๋จผ์ € ๋ช…๋ น๋ฌธ์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ•œ ํ›„ ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ,

์กฐ๊ฑด์‹์ด ์ฐธ(true)์ธ ๊ฒฝ์šฐ ๋ช…๋ น๋ฌธ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์™€ ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค

do {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
} while (์กฐ๊ฑด์‹);

2.2.3. for๋ฌธ

for (์ดˆ๊ธฐ์‹; ์กฐ๊ฑด์‹; ์ฆ๊ฐ์‹) {
    ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ธ ๋™์•ˆ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.3.4. foreach๋ฌธ

foreach๋ฌธ์€ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์†์‰ฝ๊ฒŒ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

์ด ๋ฐ˜๋ณต๋ฌธ์€ ๋ฃจํ”„๋งˆ๋‹ค ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ง€์ •๋œ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋Œ€์ž…๋ฐ›์€ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฃจํ”„ ์•ˆ์—์„œ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ foreach๋ฌธ์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค.

foreach (๋ฐฐ์—ด as ๊ฐ’์„ ์ €์žฅํ•  ๋ณ€์ˆ˜) {
    ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ช…๋ น๋ฌธ;
}

2.3. ๊ธฐํƒ€ ์ œ์–ด๋ฌธ

์ผ๋ฐ˜์ ์œผ๋กœ ์กฐ๊ฑด์‹ ๊ฒ€์‚ฌ๋ฅผ ํ†ตํ•ด ๋ฃจํ”„๋กœ ์ง„์ž…ํ•˜๋ฉด, ๋‹ค์Œ ์กฐ๊ฑด์‹์„ ๊ฒ€์‚ฌํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋ฃจํ”„ ์•ˆ์˜ ๋ชจ๋“  ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ผ๋ฐ˜์ ์ธ ๋ฃจํ”„ ํ๋ฆ„์„ continue๋ฌธ๊ณผ break๋ฌธ์„ ํ†ตํ•ด ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.3.1. continue๋ฌธ

continue๋ฌธ์€ ๋ฃจํ”„ ๋‚ด์—์„œ ํ•ด๋‹น ๋ฃจํ”„์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ , ๋ฐ”๋กœ ๋‹ค์Œ ์กฐ๊ฑด์‹์˜ ํŒ๋‹จ์œผ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

๋ณดํ†ต ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ ํŠน์ • ์กฐ๊ฑด์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

<?php
$var = 2;
for ($i = 0; $i < 10; $i++) {
    if ($i % 2 == 0) // ์ง์ˆ˜ ์ œ์™ธ
        continue;
    echo "{$i}<br />";
}
?>

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2.3.2. break๋ฌธ

break๋ฌธ์€ ๋ฃจํ”„ ๋‚ด์—์„œ ํ•ด๋‹น ๋ฐ˜๋ณต๋ฌธ์„ ์™„์ „ํžˆ ์ข…๋ฃŒ์‹œํ‚ค๊ณ , ๋ฐ˜๋ณต๋ฌธ ๋‹ค์Œ์— ์œ„์น˜ํ•œ ๋ช…๋ น๋ฌธ์œผ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค.

<?php
$var = 2;
$i = 0;
$sum = 0;
while (true) {
    if ($i == $var)
        break;
    $sum += $i;
    $i++;
}
echo $sum;
?>

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด $i๊ฐ€ $var์™€ ๋™์ผ ํ•ด์ง€๋Š” ์ˆœ๊ฐ„ ๋ฐ˜๋ณต๋ฌธ์ด ๋๋‚˜๊ธฐ ๋•Œ๋ฌธ์— $sum์˜ ๊ฐ’์€ 1์ด ๋  ์ˆ˜๋ฐ–์— ์—†๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, 1์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.3.3. goto๋ฌธ

goto๋ฌธ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„์„ ์ง€์ •๋œ ๋ ˆ์ด๋ธ”๋กœ ๋ฌด์กฐ๊ฑด ๋ณ€๊ฒฝํ•˜๋Š” ๋ช…๋ น๋ฌธ์ž…๋‹ˆ๋‹ค.

goto๋Š” ๋‹ค๋ฅธ ์ œ์–ด๋ฌธ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์•„๋ฌด ์กฐ๊ฑด ์—†์ด ์ œ์–ด๋ฅผ ์˜ฎ๊ฒจ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„์„ ๋งค์šฐ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹จ์ ์œผ๋กœ ์ธํ•ด ํ˜„์žฌ๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๊ทธ๋ž˜์„œ ์‚ฌ์šฉ๋ฒ•์„ ์“ฐ์ง€ ์•Š์•˜์–ด์š”!)

 

 


๐Ÿ”—Reference

 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ