
PHP ๊ฐ์
>PHP - ์ด๊ธ
๐ PHP ์ด๊ธ - 2์ฃผ์ฐจ - 05 ๋ฐ์ดํฐ ํ์ ๋ณํ (ํ ๋ณํ): ๊ฐ์ ํํ ๋ฐ๊พธ๊ธฐ
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-06-27 00:53:49 | |
์กฐํ์ | 13 |
๐ PHP ์ด๊ธ - 2์ฃผ์ฐจ - 05 ๋ฐ์ดํฐ ํ์ ๋ณํ (ํ ๋ณํ): ๊ฐ์ ํํ ๋ฐ๊พธ๊ธฐ
PHP๋ #๋์ _ํ์ _์ธ์ด ์ด๋ฏ๋ก, #๋ณ์ ์ #๋ฐ์ดํฐ_ํ์ ์ด ๊ณ ์ ๋์ด ์์ง ์๊ณ #ํ ๋น ๋๋ ๊ฐ์ ๋ฐ๋ผ ์ ๋์ ์ผ๋ก #๋ณํ ํฉ๋๋ค. ํ์ง๋ง ๋๋ก๋ ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด #๋ฐ์ดํฐ ์ #ํ์ ์ ์๋์ ์ผ๋ก #๋ณํ ํด์ผ ํ ๋๊ฐ ์์ต๋๋ค. ์ด๋ ๊ฒ #๋ฐ์ดํฐ_ํ์ ์ ๋ค๋ฅธ #ํ์ ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ **#ํ๋ณํ (Type Casting)**์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ PHP์์ #ํ๋ณํ ์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง๋์ง, ๊ทธ๋ฆฌ๊ณ #๋ช ์์ _ํ๋ณํ ๊ณผ #์์์ _ํ๋ณํ ์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
1. #ํ๋ณํ ์ด๋?
#ํ๋ณํ ์ ํ๋์ #๋ฐ์ดํฐ_ํ์ ์ ๋ค๋ฅธ #๋ฐ์ดํฐ_ํ์ ์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, #๋ฌธ์์ด ํํ์ ์ซ์๋ฅผ ์ค์ #์ ์ ๋ก ๋ฐ๊พธ๊ฑฐ๋, #๋ถ๋ฆฐ ๊ฐ์ #์ ์ (0 ๋๋ 1)๋ก ๋ฐ๊พธ๋ ๊ฒฝ์ฐ ๋ฑ์ด ์์ต๋๋ค.
PHP์์ #ํ๋ณํ ์ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ผ์ด๋ฉ๋๋ค.
#๋ช ์์ _ํ๋ณํ (Explicit Type Casting): ๊ฐ๋ฐ์๊ฐ ์ง์ #ํ์ ์ ์ง์ ํ์ฌ #๋ณํ ์ ์ง์ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
#์์์ _ํ๋ณํ (Implicit Type Casting / Type Juggling): PHP ์์ง์ด ํน์ ์ํฉ(์: ์ฐ์ฐ)์์ ์๋์ผ๋ก #ํ์ ์ #๋ณํ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค.
2. #๋ช ์์ _ํ๋ณํ (Explicit Type Casting)
#๋ช
์์ _ํ๋ณํ ์ ๊ดํธ ()
์์ ์ํ๋ #๋ฐ์ดํฐ_ํ์
์ด๋ฆ์ ์ฐ๊ณ , ๊ทธ ๋ค์ #๋ณํ ํ #๋ณ์ ๋ ๊ฐ์ ๋๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
์์ฃผ ์ฌ์ฉ๋๋ #๋ช ์์ _ํ๋ณํ ํค์๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
(int)
๋๋(integer)
: #์ ์ํ ์ผ๋ก #๋ณํ(float)
๋๋(double)
๋๋(real)
: #์ค์ํ ์ผ๋ก #๋ณํ(string)
: #๋ฌธ์์ดํ ์ผ๋ก #๋ณํ(bool)
๋๋(boolean)
: #๋ถ๋ฆฐํ ์ผ๋ก #๋ณํ(array)
: #๋ฐฐ์ดํ ์ผ๋ก #๋ณํ(object)
: #๊ฐ์ฒดํ ์ผ๋ก #๋ณํ(unset)
: #NULL ๋ก #๋ณํ (์ฌ์ค์ #๋ณ์ ๋ฅผ ํด์ ํ๋ ๊ฒ๊ณผ ์ ์ฌ)
์์:
PHP
<?php
$strNumber = "123";
$intNumber = (int)$strNumber; // ๋ฌธ์์ด "123"์ ์ ์ 123์ผ๋ก ๋ณํ
echo gettype($intNumber) . ": " . $intNumber . "<br>"; // ์ถ๋ ฅ: integer: 123
$floatValue = 3.14;
$stringValue = (string)$floatValue; // ์ค์ 3.14๋ฅผ ๋ฌธ์์ด "3.14"๋ก ๋ณํ
echo gettype($stringValue) . ": " . $stringValue . "<br>"; // ์ถ๋ ฅ: string: 3.14
$boolValue = true;
$intValue = (int)$boolValue; // ๋ถ๋ฆฐ true๋ฅผ ์ ์ 1๋ก ๋ณํ
echo gettype($intValue) . ": " . $intValue . "<br>"; // ์ถ๋ ฅ: integer: 1
$zeroString = "0";
$boolFalse = (bool)$zeroString; // ๋ฌธ์์ด "0"์ ๋ถ๋ฆฐ false๋ก ๋ณํ
echo gettype($boolFalse) . ": " . ($boolFalse ? "true" : "false") . "<br>"; // ์ถ๋ ฅ: boolean: false
$arrayValue = (array)"hello"; // ๋ฌธ์์ด "hello"๋ฅผ ๋ฐฐ์ด๋ก ๋ณํ (0๋ฒ ์ธ๋ฑ์ค์ ๊ฐ ์ ์ฅ)
echo gettype($arrayValue) . ": "; print_r($arrayValue); echo "<br>"; // ์ถ๋ ฅ: array: Array ( [0] => hello )
$objectValue = (object)["name" => "Alice"]; // ์ฐ๊ด ๋ฐฐ์ด์ ๊ฐ์ฒด๋ก ๋ณํ
echo gettype($objectValue) . ": "; print_r($objectValue); echo "<br>"; // ์ถ๋ ฅ: object: stdClass Object ( [name] => Alice )
?>
3. #์์์ _ํ๋ณํ (Implicit Type Casting / Type Juggling)
PHP๋ ํน์ ์ฐ์ฐ์ด๋ ๋ฌธ๋งฅ์์ ํ์์ ๋ฐ๋ผ #๋ฐ์ดํฐ_ํ์ ์ ์๋์ผ๋ก #๋ณํ ํฉ๋๋ค. ์ด๋ฅผ #์์์ _ํ๋ณํ ๋๋ #ํ์ _์ ๊ธ๋ง ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค. ์ด๋ ๊ฐ๋ฐ์๊ฐ ์ผ์ผ์ด #ํ๋ณํ ์ ๋ช ์ํ์ง ์์๋ ๋๋ฏ๋ก ํธ๋ฆฌํ์ง๋ง, ๋๋ก๋ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๋ ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ ์ ์์ผ๋ฏ๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค.
์ฃผ์ #์์์ _ํ๋ณํ ๊ท์น:
#์ซ์_์ฐ์ฐ: #๋ฌธ์์ด ๊ณผ #์ซ์ ๋ฅผ ํจ๊ป ์ฐ์ฐํ ๋, #๋ฌธ์์ด ์ด #์ซ์ ๋ก #๋ณํ ๋ฉ๋๋ค.
PHP
$num = 10; $str = "5"; $result = $num + $str; // $str์ด ์ซ์ 5๋ก ๋ณํ๋์ด 15๊ฐ ๋จ echo $result . "<br>"; // ์ถ๋ ฅ: 15 $str2 = "10์ "; $result2 = $num + $str2; // "10์ "์ ์ซ์ 10์ผ๋ก๋ง ๋ณํ๋๊ณ "์ "์ ๋ฌด์๋จ (๊ฒฝ๊ณ ๋ฐ์ ๊ฐ๋ฅ) echo $result2 . "<br>"; // ์ถ๋ ฅ: 20
์ฃผ์: #๋ฌธ์์ด ์ด ์ซ์๋ก ์์ํ์ง ์๊ฑฐ๋ ์ ํจํ ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ 0์ผ๋ก #๋ณํ ๋ฉ๋๋ค.
#๋น๊ต_์ฐ์ฐ:
==
(๊ฐ๋ง ๋น๊ต) ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๋, ์๋ก ๋ค๋ฅธ #๋ฐ์ดํฐ_ํ์ ์ด๋ฉด PHP๊ฐ #ํ์ ์ ๋ง์ถฐ์ ๋น๊ตํฉ๋๋ค.PHP
$a = 10; $b = "10"; if ($a == $b) { // $b๊ฐ ์ซ์ 10์ผ๋ก ๋ณํ๋์ด ๋น๊ต echo "๊ฐ์ ๊ฐ๋ค.<br>"; // ์ถ๋ ฅ: ๊ฐ์ ๊ฐ๋ค. } $c = "abc"; $d = 0; if ($c == $d) { // $c๊ฐ ์ซ์ 0์ผ๋ก ๋ณํ๋์ด ๋น๊ต echo "๊ฐ์ ๊ฐ๋ค.<br>"; // ์ถ๋ ฅ: ๊ฐ์ ๊ฐ๋ค. }
ํ: ๊ฐ๊ณผ #๋ฐ์ดํฐ_ํ์ ์ ๋ชจ๋ ์๊ฒฉํ๊ฒ ๋น๊ตํ๋ ค๋ฉด
===
(๋์ผ ์ฐ์ฐ์)๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.if ($a === $b)
๋false
์ ๋๋ค.#๋ถ๋ฆฐ_๋ฌธ๋งฅ:
if
๋ฌธ์ด๋while
๋ฌธ๊ณผ ๊ฐ์ #๋ถ๋ฆฐ_๋ฌธ๋งฅ ์์๋ ๋ง์ #๋ฐ์ดํฐ_ํ์ ์ด ์๋์ผ๋ก #๋ถ๋ฆฐํ ์ผ๋ก #๋ณํ ๋ฉ๋๋ค.0
,0.0
,""
(๋น #๋ฌธ์์ด),[]
(๋น #๋ฐฐ์ด),NULL
์false
๋ก #๋ณํ ๋ฉ๋๋ค.๊ทธ ์ธ์ ๋๋ถ๋ถ์ ๊ฐ์
true
๋ก #๋ณํ ๋ฉ๋๋ค.
PHP
$emptyString = ""; if ($emptyString) { echo "์ด๊ฒ์ ์ถ๋ ฅ๋์ง ์์ต๋๋ค.<br>"; } else { echo "๋น ๋ฌธ์์ด์ false๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.<br>"; // ์ถ๋ ฅ: ๋น ๋ฌธ์์ด์ false๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. } $nonEmptyString = "hello"; if ($nonEmptyString) { echo "๋น์ด์์ง ์์ ๋ฌธ์์ด์ true๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.<br>"; // ์ถ๋ ฅ: ๋น์ด์์ง ์์ ๋ฌธ์์ด์ true๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. }
4. #ํ๋ณํ ์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ์ ๊ณผ ๋ฐฉ์ง์ฑ
#์์์ _ํ๋ณํ ์ ํธ๋ฆฌํ์ง๋ง, ์๊ธฐ์น ์์ ๋์์ ์ ๋ฐํ์ฌ ๋ฒ๊ทธ์ ์์ธ์ด ๋ ์ ์์ต๋๋ค.
#๋ฌธ์์ด_์ซ์_๋ณํ์_์ค๋ฅ:
#๋ฌธ์์ด
์ด ์ซ์๋ก ์์ํ์ง ์๊ฑฐ๋ ์ซ์๋ก ์์ ํ #๋ณํ ๋ ์ ์๋ ๊ฒฝ์ฐ, PHP๋ #๋ฌธ์์ด ์0
์ผ๋ก ๊ฐ์ฃผํ๊ฑฐ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค.#๋น๊ต_์ฐ์ฐ์_์คํด:
==
์ฐ์ฐ์๋ ํธ๋ฆฌํ์ง๋ง, #ํ์ ์ ๋ฌด์ํ๊ณ ๊ฐ๋ง ๋น๊ตํ๋ฏ๋ก, ์๊ฒฉํ #ํ์ _์ฒดํฌ ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋===
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ฐฉ์ง์ฑ :
#๋ช ์์ _ํ๋ณํ ํ์ฉ: ๊ฐ๋ฅํ ๊ฒฝ์ฐ #๋ช ์์ _ํ๋ณํ ์ ์ฌ์ฉํ์ฌ #๋ฐ์ดํฐ_ํ์ ์ ๊ฐ๋ฐ์๊ฐ ์๋ํ ๋๋ก #๋ณํ ํฉ๋๋ค.
#์๊ฒฉํ_๋น๊ต_์ฐ์ฐ์ (
===
) ์ฌ์ฉ: #ํ์ ๊น์ง ํจ๊ป ๋น๊ตํด์ผ ํ๋ ๊ฒฝ์ฐ===
๋ฅผ ์ฌ์ฉํฉ๋๋ค.#ํ์ _ํ์ธ_ํจ์ ํ์ฉ:
is_int()
,is_string()
,is_numeric()
๋ฑ๊ณผ ๊ฐ์ #ํ์ _ํ์ธ_ํจ์ ๋ฅผ ์ฌ์ฉํ์ฌ #๋ณ์ ์ #๋ฐ์ดํฐ_ํ์ ์ ๋จผ์ ํ์ธํ ํ ์์ ์ ์ํํฉ๋๋ค.
๊ฒฐ๋ก
PHP์ #๋ฐ์ดํฐ_ํ์ #๋ณํ (#ํ๋ณํ)์ ์ ์ฐํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ค์ํ ์์์ ๋๋ค. #๋ช ์์ _ํ๋ณํ ์ ํตํด ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋๋ก #๋ฐ์ดํฐ_ํ์ ์ ์ ์ดํ ์ ์์ผ๋ฉฐ, #์์์ _ํ๋ณํ ์ PHP์ ํธ๋ฆฌํจ์ ์ ๊ณตํ์ง๋ง ์ฃผ์ ๊น๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ฐ #ํ๋ณํ ๋ฐฉ์์ ํน์ง๊ณผ ์ฃผ์์ฌํญ์ ์ถฉ๋ถํ ์ดํดํ๊ณ ์ ์ ํ๊ฒ ํ์ฉํ๋ค๋ฉด, ๋์ฑ ๊ฒฌ๊ณ ํ๊ณ ์์ธก ๊ฐ๋ฅํ PHP ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ ๊ฒ์ ๋๋ค.