
PHP ๊ฐ์
>PHP - ์ด๊ธ
๐ PHP ์ด๊ธ - 5์ฃผ์ฐจ: ํจ์ - 02 ๋งค๊ฐ๋ณ์ (๊ธฐ๋ณธ๊ฐ, ๊ฐ๋ณ ์ธ์)
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-06-28 17:08:21 | |
์กฐํ์ | 24 |
๐ PHP ์ด๊ธ - 5์ฃผ์ฐจ: ํจ์ - 02 ๋งค๊ฐ๋ณ์ (๊ธฐ๋ณธ๊ฐ, ๊ฐ๋ณ ์ธ์)
์๋ ํ์ธ์! #PHP ์ด๊ธ ๊ฐ์ข 5์ฃผ์ฐจ ๋ ๋ฒ์งธ ์๊ฐ์ ๋๋ค. ์ง๋ ์๊ฐ์๋ #PHP #ํจ์ ์ ๊ธฐ๋ณธ์ ์ธ ์ ์์ ํธ์ถ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ ํจ์๋ฅผ ๋์ฑ ์ ์ฐํ๊ณ ๊ฐ๋ ฅํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋งค๊ฐ๋ณ์์ ๊ณ ๊ธ ํ์ฉ๋ฒ, ํนํ ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์์ ๊ฐ๋ณ ์ธ์์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ๋งค๊ฐ๋ณ์ ๊ธฐ๋ณธ๊ฐ (Default Parameter Values)
ํจ์๋ฅผ ์ ์ํ ๋ ํน์ #๋งค๊ฐ๋ณ์ ์ #๊ธฐ๋ณธ๊ฐ ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํจ์๋ฅผ ํธ์ถํ ๋ ํด๋น ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ ๋ฌํ์ง ์์๋ ๋ฏธ๋ฆฌ ์ค์ ๋ ๊ธฐ๋ณธ๊ฐ์ด ์๋์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ํจ์ ํธ์ถ ์ ์ธ์๋ฅผ ์๋ตํ ์ ์๊ฒ ํ์ฌ ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค๊ณ , ์ ์ฐ์ฑ์ ๋์ฌ์ค๋๋ค.
1.1. ๊ธฐ๋ณธ๊ฐ ์ค์ ๋ฐฉ๋ฒ
๋งค๊ฐ๋ณ์ ์ด๋ฆ ๋ค์ =
์ฐ์ฐ์์ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํฉ๋๋ค.
PHP
<?php
function sendMessage($message, $recipient = "๋ชจ๋ ์ฌ์ฉ์") {
echo $recipient . "์๊ฒ ๋ฉ์์ง: " . $message . "<br>";
}
// 1. recipient์ ๊ฐ์ ์ ๋ฌํ์ง ์์ ๊ฒฝ์ฐ: ๊ธฐ๋ณธ๊ฐ "๋ชจ๋ ์ฌ์ฉ์"๊ฐ ์ฌ์ฉ๋ฉ๋๋ค.
sendMessage("์๋
ํ์ธ์!");
// ์ถ๋ ฅ: ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง: ์๋
ํ์ธ์!
echo "<br>";
// 2. recipient์ ๊ฐ์ ์ ๋ฌํ ๊ฒฝ์ฐ: ์ ๋ฌ๋ ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ ๋ฎ์ด์๋๋ค.
sendMessage("์ค๋ ๋ ์จ๊ฐ ์ข๋ค์.", "๋ฐ์ํฌ");
// ์ถ๋ ฅ: ๋ฐ์ํฌ์๊ฒ ๋ฉ์์ง: ์ค๋ ๋ ์จ๊ฐ ์ข๋ค์.
?>
1.2. ๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์์ ์์น
์ค์: ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ ํญ์ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๋งค๊ฐ๋ณ์ ๋ค์ ์์นํด์ผ ํฉ๋๋ค. PHP๋ ํจ์ ํธ์ถ ์ ์ ๋ฌ๋ ์ธ์๋ฅผ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋งค๊ฐ๋ณ์์ ํ ๋นํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
PHP
<?php
// ์ฌ๋ฐ๋ฅธ ์์: $param1์ ํ์, $param2๋ ์ ํ (๊ธฐ๋ณธ๊ฐ)
function correctOrder($param1, $param2 = "๊ธฐ๋ณธ๊ฐ") {
echo "Param1: " . $param1 . ", Param2: " . $param2 . "<br>";
}
correctOrder("ํ์๊ฐ"); // Param1: ํ์๊ฐ, Param2: ๊ธฐ๋ณธ๊ฐ
correctOrder("ํ์๊ฐ", "์๋ก์ด๊ฐ"); // Param1: ํ์๊ฐ, Param2: ์๋ก์ด๊ฐ
echo "<br>";
// ์๋ชป๋ ์์: Syntax Error ๋ฐ์
// function wrongOrder($param1 = "๊ธฐ๋ณธ๊ฐ", $param2) {
// echo "Param1: " . $param1 . ", Param2: " . $param2 . "<br>";
// }
// wrongOrder("๊ฐ1", "๊ฐ2"); // PHP Fatal error: Required parameter $param2 follows optional parameter $param1
?>
์๋ชป๋ ์์์ฒ๋ผ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๋งค๊ฐ๋ณ์ ๋ค์ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๋งค๊ฐ๋ณ์๊ฐ ์ค๋ฉด PHP๋ ์ด๋ค ์ธ์๊ฐ ์ด๋ค ๋งค๊ฐ๋ณ์์ ํ ๋น๋์ด์ผ ํ ์ง ์ ์ ์์ผ๋ฏ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
2. ๊ฐ๋ณ ์ธ์ ํจ์ (Variable-length Argument Lists)
๋๋ก๋ ํจ์๊ฐ ๋ฐ์ #์ธ์ ์ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋ฌ ์ซ์์ ํฉ๊ณ๋ฅผ ๊ณ์ฐํ๋ ํจ์๋ ๋ช ๊ฐ์ ์ซ์๊ฐ ์ ๋ฌ๋ ์ง ์ ์ ์์ต๋๋ค. #PHP 5.6๋ถํฐ๋ ...
(์คํ๋ซ ์ฐ์ฐ์, Splat Operator)๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๊ฐ #๊ฐ๋ณ ์ธ์ ๋ฅผ ๋ฐ์ ์ ์๋๋ก ์ ์ํ ์ ์์ต๋๋ค.
2.1. ๊ฐ๋ณ ์ธ์ ์ ์ ๋ฐฉ๋ฒ
๋งค๊ฐ๋ณ์ ์ด๋ฆ ์์ ...
๋ฅผ ๋ถ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ๋ฌ๋ ๋ชจ๋ ์ธ์๊ฐ ํด๋น ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋ฐฐ์ด๋ก ํจ์ ๋ด์์ ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค.
PHP
<?php
function sumAll(...$numbers) { // ...$numbers๋ ๋ฐฐ์ด ํํ๋ก ๋ชจ๋ ์ธ์๋ฅผ ๋ฐ์ต๋๋ค.
$total = 0;
foreach ($numbers as $number) {
$total += $number;
}
return $total;
}
echo "ํฉ๊ณ 1: " . sumAll(1, 2, 3) . "<br>";
// ์ถ๋ ฅ: ํฉ๊ณ 1: 6 (sumAll ํจ์ ๋ด๋ถ์์ $numbers๋ [1, 2, 3] ๋ฐฐ์ด์ด ๋ฉ๋๋ค.)
echo "ํฉ๊ณ 2: " . sumAll(10, 20, 30, 40, 50) . "<br>";
// ์ถ๋ ฅ: ํฉ๊ณ 2: 150 ($numbers๋ [10, 20, 30, 40, 50] ๋ฐฐ์ด์ด ๋ฉ๋๋ค.)
echo "ํฉ๊ณ 3: " . sumAll(5) . "<br>";
// ์ถ๋ ฅ: ํฉ๊ณ 3: 5 ($numbers๋ [5] ๋ฐฐ์ด์ด ๋ฉ๋๋ค.)
echo "ํฉ๊ณ 4: " . sumAll() . "<br>";
// ์ถ๋ ฅ: ํฉ๊ณ 4: 0 ($numbers๋ ๋น ๋ฐฐ์ด []์ด ๋ฉ๋๋ค.)
?>
2.2. ๊ฐ๋ณ ์ธ์์ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์์ ์กฐํฉ
๊ฐ๋ณ ์ธ์๋ ๋ค๋ฅธ ์ผ๋ฐ ๋งค๊ฐ๋ณ์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ๋ณ ์ธ์ ๋งค๊ฐ๋ณ์๋ ํญ์ ๋ง์ง๋ง์ ์์นํด์ผ ํฉ๋๋ค.
PHP
<?php
function createPlaylist($playlistName, ...$songs) {
echo "ํ๋ ์ด๋ฆฌ์คํธ: " . $playlistName . "<br>";
if (empty($songs)) {
echo "์ด ํ๋ ์ด๋ฆฌ์คํธ์๋ ์์ง ๋
ธ๋๊ฐ ์์ต๋๋ค.<br>";
} else {
echo "ํฌํจ๋ ๋
ธ๋:<br>";
foreach ($songs as $song) {
echo "- " . $song . "<br>";
}
}
echo "<br>";
}
createPlaylist("๋์ ์ฆ๊ฒจ์ฐพ๊ธฐ", "Dynamite", "Butter", "Permission to Dance");
// ์ถ๋ ฅ:
// ํ๋ ์ด๋ฆฌ์คํธ: ๋์ ์ฆ๊ฒจ์ฐพ๊ธฐ
// ํฌํจ๋ ๋
ธ๋:
// - Dynamite
// - Butter
// - Permission to Dance
createPlaylist("ํด์ ์์
");
// ์ถ๋ ฅ:
// ํ๋ ์ด๋ฆฌ์คํธ: ํด์ ์์
// ์ด ํ๋ ์ด๋ฆฌ์คํธ์๋ ์์ง ๋
ธ๋๊ฐ ์์ต๋๋ค.
?>
2.3. ๋ฐฐ์ด์ ๊ฐ๋ณ ์ธ์๋ก ์ ๋ฌํ๊ธฐ
์ด๋ฏธ ๋ฐฐ์ด๋ก ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ณ ์ธ์ ํจ์์ ์ ๋ฌํ ๋๋ ๋ค์ ...
์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ "ํผ์ณ์(unpack)" ๊ฐ๋ณ ์ธ์๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
PHP
<?php
$numbersToAdd = [100, 200, 300];
echo "๋ฐฐ์ด ํฉ๊ณ: " . sumAll(...$numbersToAdd) . "<br>";
// ์ถ๋ ฅ: ๋ฐฐ์ด ํฉ๊ณ: 600
// sumAll(100, 200, 300)๊ณผ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค.
?>
๊ฒฐ๋ก
์ด๋ฒ #PHP ์ด๊ธ ๊ฐ์ข์์๋ #ํจ์ ์ #๋งค๊ฐ๋ณ์ ๋ฅผ ๋์ฑ ์ ์ฐํ๊ฒ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ธ #๊ธฐ๋ณธ๊ฐ ๋งค๊ฐ๋ณ์์ #๊ฐ๋ณ ์ธ์์ ๋ํด ๊น์ด ์๊ฒ ์์๋ณด์์ต๋๋ค. ์ด ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ ํจ์๋ฅผ ๋ ๊ฐ๋ ฅํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ฃผ๋ฉฐ, ๋ค์ํ ์ํฉ์ ๋์ํ ์ ์๋ ์ ์ฐํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ค์ ์ฝ๋์ ์ ์ฉํด๋ณด๋ฉด์ ์๋ฌํ์๊ธธ ๋ฐ๋๋๋ค.