์จ๋ผ์ธ ๊ฐ์
>PHP - ์ด๊ธ
๐ PHP ์ด๊ธ - 5์ฃผ์ฐจ: ํจ์ - ํจ์ ์ ์ ๋ฐ ํธ์ถ
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 46
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-06-28 17:00:16
 
- ์ค๋ช
๐ PHP ์ด๊ธ - 5์ฃผ์ฐจ: ํจ์ - ํจ์ ์ ์ ๋ฐ ํธ์ถ
์๋
ํ์ธ์! #PHP ์ด๊ธ ๊ฐ์ข 5์ฃผ์ฐจ์ ์ค์  ๊ฒ์ ํ์ํฉ๋๋ค. ์ง๋ ์๊ฐ์๋ #๋ฐ๋ณต๋ฌธ ์ ํ๋ฆ์ ์ ์ดํ๋ break์ continue ํค์๋๋ฅผ ํจ์ ๋ด์์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ์์๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ #PHP ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ํต์ฌ์ ์ธ ๊ฐ๋
 ์ค ํ๋์ธ ํจ์์ ๋ํด ์ฌ์ธต์ ์ผ๋ก ๋ค๋ฃจ์ด ๋ณด๊ฒ ์ต๋๋ค. ํจ์๋ฅผ ์ ์ํ๊ณ  ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ฝ๋๋ฅผ ๋ ํจ์จ์ ์ด๊ณ  ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ด
์๋ค.
1. ํจ์๋ ๋ฌด์์ธ๊ฐ?
#ํจ์ ๋ ํน์  ์์
์ ์ํํ๋๋ก ์ค๊ณ๋ ์ฝ๋ ๋ธ๋ก์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ echo, print_r, var_dump ๋ฑ๋ ๋ชจ๋ ๋ฏธ๋ฆฌ ์ ์๋ ํจ์๋ค์
๋๋ค. ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ: ํ ๋ฒ ์ ์ํ ํจ์๋ ์ฌ๋ฌ ๋ฒ ํธ์ถํ์ฌ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋์ผํ ์ฝ๋๋ฅผ ๋ฐ๋ณตํด์ ์์ฑํ ํ์๊ฐ ์์ด์ง๋๋ค.
์ฝ๋์ ๋ชจ๋ํ: ํ๋ก๊ทธ๋จ์ ์์ ๊ธฐ๋ฅ ๋จ์๋ก ๋๋์ด ๊ด๋ฆฌํ ์ ์์ด, ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฅ์๋ฉ๋๋ค.
์ค๋ฅ ๊ฐ์: ํน์  ๊ธฐ๋ฅ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋, ํด๋น ํจ์๋ง ์์ ํ๋ฉด ๋๋ฏ๋ก ์ค๋ฅ๋ฅผ ์ฝ๊ฒ ์ฐพ์๋ด๊ณ ์์ ํ ์ ์์ต๋๋ค.
2. ํจ์ ์ ์ํ๊ธฐ
#PHP ์์ ํจ์๋ฅผ ์ ์ํ  ๋๋ function ํค์๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
PHP
<?php
function ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์1, ๋งค๊ฐ๋ณ์2, ...) {
    // ํจ์๊ฐ ์คํํ  ์ฝ๋
    // ์ ํ์ ์ผ๋ก ๊ฐ์ ๋ฐํํ  ์ ์์ต๋๋ค.
    return ๋ฐํ๊ฐ;
}
?>
function: ํจ์๋ฅผ ์ ์ํ ๋ ์ฌ์ฉํ๋ ํ์ ํค์๋์ ๋๋ค.ํจ์์ด๋ฆ: ํจ์์ ๋ชฉ์ ์ ๋ช ํํ ๋ํ๋ด๋ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. (์:calculateSum,displayMessage) ํจ์ ์ด๋ฆ์ ์๋ฌธ์, ์ซ์, ๋ฐ์ค(_)๋ก ๊ตฌ์ฑ๋ ์ ์์ผ๋ฉฐ, ์ซ์๋ก ์์ํ ์ ์์ต๋๋ค. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์นด๋ฉ ์ผ์ด์ค(camelCase)๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ด๋ก์ ๋๋ค.๋งค๊ฐ๋ณ์(Parameter): ํจ์๊ฐ ์์ ์ ์ํํ๋ ๋ฐ ํ์ํ ๊ฐ์ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ ๋ ์ฌ์ฉํฉ๋๋ค. ๊ดํธ()์์ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ ์ํ ์ ์์ผ๋ฉฐ, ํ์ ์์ผ๋ฉด ์๋ตํ ์ ์์ต๋๋ค.{}: ์ค๊ดํธ ์์๋ ํจ์๊ฐ ์คํํ ์ค์  ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.return: (์ ํ ์ฌํญ) ํจ์๊ฐ ์์ ์ ๋ง์น ํ ๊ฒฐ๊ณผ๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ๋๋ ค์ค ๋ ์ฌ์ฉํฉ๋๋ค.return๋ฌธ์ด ์คํ๋๋ฉด ํจ์๋ ์ฆ์ ์ข ๋ฃ๋ฉ๋๋ค.return๋ฌธ์ด ์์ผ๋ฉด ํจ์๋NULL์ ๋ฐํํฉ๋๋ค.
2.1. ๋งค๊ฐ๋ณ์ ์๋ ํจ์
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํํ์ ํจ์์ ๋๋ค. ํน์  ๊ณ ์ ๋ ์์ ์ ์ํํ ๋ ์ ์ฉํฉ๋๋ค.
PHP
<?php
function sayHello() {
    echo "์๋
ํ์ธ์, PHP ํจ์๋ฅผ ๋ฐฐ์ฐ๊ณ  ์์ต๋๋ค!<br>";
}
?>
2.2. ๋งค๊ฐ๋ณ์ ์๋ ํจ์
ํจ์ ์ธ๋ถ๋ก๋ถํฐ ๊ฐ์ ์ ๋ฌ๋ฐ์ ๋์ ์ธ ์์ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค.
PHP
<?php
function greetUser($name) { // $name์ด ๋งค๊ฐ๋ณ์
    echo "ํ์ํฉ๋๋ค, " . $name . "๋!<br>";
}
?>
2.3. ๋ฐํ๊ฐ์ด ์๋ ํจ์
ํจ์๊ฐ ์ด๋ค ๊ณ์ฐ์ด๋ ์ฒ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๋๋ ค์ค ํ์๊ฐ ์์ ๋ return์ ์ฌ์ฉํฉ๋๋ค.
PHP
<?php
function addNumbers($num1, $num2) {
    $sum = $num1 + $num2;
    return $sum; // ๊ณ์ฐ๋ ํฉ๊ณ๋ฅผ ๋ฐํ
}
?>
3. ํจ์ ํธ์ถํ๊ธฐ
ํจ์๋ฅผ ์ ์ํ๋ค๊ณ  ํด์ ์๋์ผ๋ก ์คํ๋๋ ๊ฒ์ ์๋๋๋ค. ์ ์๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํจ์ ํธ์ถ(Function Call) ์ด๋ผ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ํจ์ ํธ์ถ์ ํจ์ ์ด๋ฆ์ ์์ฑํ๊ณ  ๊ทธ ๋ค์ ๊ดํธ ()๋ฅผ ๋ถ์ด๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ๋งค๊ฐ๋ณ์๊ฐ ํ์ํ ํจ์๋ผ๋ฉด ๊ดํธ ์์ ๊ฐ์ ์ ๋ฌํฉ๋๋ค. ์ด ์ ๋ฌ๋๋ ๊ฐ์ #์ธ์(Argument) ๋ผ๊ณ  ํฉ๋๋ค.
PHP
<?php
// ๋งค๊ฐ๋ณ์ ์๋ ํจ์ ํธ์ถ
sayHello(); // ์ถ๋ ฅ: ์๋
ํ์ธ์, PHP ํจ์๋ฅผ ๋ฐฐ์ฐ๊ณ  ์์ต๋๋ค!
echo "<br>";
// ๋งค๊ฐ๋ณ์ ์๋ ํจ์ ํธ์ถ
greetUser("๊น์ฒ ์"); // ์ถ๋ ฅ: ํ์ํฉ๋๋ค, ๊น์ฒ ์๋!
greetUser("์ด์ํฌ"); // ์ถ๋ ฅ: ํ์ํฉ๋๋ค, ์ด์ํฌ๋!
echo "<br>";
// ๋ฐํ๊ฐ์ด ์๋ ํจ์ ํธ์ถ
$result = addNumbers(5, 7); // addNumbers ํจ์๋ฅผ ํธ์ถํ๊ณ  ๋ฐํ๊ฐ์ $result ๋ณ์์ ์ ์ฅ
echo "5์ 7์ ํฉ์: " . $result . "์
๋๋ค.<br>"; // ์ถ๋ ฅ: 5์ 7์ ํฉ์: 12์
๋๋ค.
echo "10๊ณผ 20์ ํฉ์: " . addNumbers(10, 20) . "์
๋๋ค.<br>"; // ์ง์  ์ถ๋ ฅ ๊ฐ๋ฅ
?>
์ฌ๊ธฐ์ sayHello(), greetUser("๊น์ฒ ์"), addNumbers(5, 7) ๋ถ๋ถ์ด ๋ฐ๋ก ํจ์๋ฅผ ํธ์ถํ๋ ๋ถ๋ถ์
๋๋ค. greetUser ํจ์์ ์ ๋ฌ๋ "๊น์ฒ ์", "์ด์ํฌ"๋ ์ธ์(Argument) ์ด๊ณ , addNumbers ํจ์์ ์ ๋ฌ๋ 5์ 7๋ ์ธ์์
๋๋ค.
4. ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ (Default Parameter Values)
#PHP ์์๋ ํจ์๋ฅผ ์ ์ํ ๋ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํจ์๋ฅผ ํธ์ถํ ๋ ํด๋น ๋งค๊ฐ๋ณ์์ ๊ฐ์ ์ ๋ฌํ์ง ์์๋ ๊ธฐ๋ณธ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
PHP
<?php
function sendMessage($message, $recipient = "๋ชจ๋  ์ฌ์ฉ์") { // $recipient์ ๊ธฐ๋ณธ๊ฐ ์ค์ 
    echo $recipient . "์๊ฒ ๋ฉ์์ง: " . $message . "<br>";
}
// ๊ธฐ๋ณธ๊ฐ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
sendMessage("์๋
ํ์ธ์!"); // ์ถ๋ ฅ: ๋ชจ๋  ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง: ์๋
ํ์ธ์!
// ๊ธฐ๋ณธ๊ฐ์ด ์ค๋ฒ๋ผ์ด๋(์ฌ์ ์)๋๋ ๊ฒฝ์ฐ
sendMessage("์ค๋ ๋ ์จ๊ฐ ์ข๋ค์.", "๋ฐ์ํฌ"); // ์ถ๋ ฅ: ๋ฐ์ํฌ์๊ฒ ๋ฉ์์ง: ์ค๋ ๋ ์จ๊ฐ ์ข๋ค์.
?>
์ฃผ์์ฌํญ: ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ ํญ์ ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๋งค๊ฐ๋ณ์ ๋ค์ ์์นํด์ผ ํฉ๋๋ค.
PHP
<?php
// ์ฌ๋ฐ๋ฅธ ์์
function correctOrder($param1, $param2 = "๊ธฐ๋ณธ๊ฐ") { /* ... */ }
// ์๋ชป๋ ์์ (Syntax Error ๋ฐ์)
// function wrongOrder($param1 = "๊ธฐ๋ณธ๊ฐ", $param2) { /* ... */ }
?>
5. ๊ฐ๋ณ ์ธ์ ํจ์ (Variable-length Argument Lists)
#PHP 5.6๋ถํฐ๋ #...`` ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํจ์๊ฐ #๊ฐ๋ณ ์ธ์ ๋ฅผ ๋ฐ์ ์ ์๋๋ก ์ ์ํ  ์ ์์ต๋๋ค. ์ด๋ ํจ์๊ฐ ๋ฐ์ ์ธ์์ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์ ์ ์์ ๋ ์ ์ฉํฉ๋๋ค.
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
echo "ํฉ๊ณ 2: " . sumAll(10, 20, 30, 40, 50) . "<br>"; // ์ถ๋ ฅ: ํฉ๊ณ 2: 150
echo "ํฉ๊ณ 3: " . sumAll(5) . "<br>"; // ์ถ๋ ฅ: ํฉ๊ณ 3: 5
echo "ํฉ๊ณ 4: " . sumAll() . "<br>"; // ์ถ๋ ฅ: ํฉ๊ณ 4: 0
?>
...$numbers๋ ์ ๋ฌ๋ ๋ชจ๋  ์ธ์๋ฅผ $numbers๋ผ๋ ์ด๋ฆ์ ๋ฐฐ์ด๋ก ๋ฌถ์ด์ค๋๋ค.
๊ฒฐ๋ก
์ด๋ฒ #PHP ์ด๊ธ 5์ฃผ์ฐจ ๊ฐ์ข์์๋ #ํจ์ ์ ์ ์๋ถํฐ ํธ์ถ, ๋งค๊ฐ๋ณ์ ์ฌ์ฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ๊ฐ ๋ฐ ๊ฐ๋ณ ์ธ์๊น์ง ํญ๋๊ฒ ๋ค๋ฃจ์ด ๋ณด์์ต๋๋ค. ํจ์๋ PHP ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์ฑ ์์์ด๋ฉฐ, ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ ๋ง์ ํจ์๋ฅผ ์ ์ํ๊ณ ํธ์ถํ๋ ์ฐ์ต์ ๊พธ์คํ ํด๋ณด์๊ธธ ๋ฐ๋๋๋ค.