[PHP] 16. PHP User Defined Functions 사용자 정의 함수

Posted by 낭만사업가 정대표 블로그 on 2022-05-13 04:49:31

PHP 사용자 정의 함수

내장된 PHP 기능 외에도 고유한 기능을 생성할 수 있습니다.

  • 함수는 프로그램에서 반복적으로 사용할 수 있는 명령문 블록입니다.
  • 페이지가 로드될 때 함수가 자동으로 실행되지 않습니다.
  • 함수 호출에 의해 함수가 실행됩니다.

PHP에서 사용자정의 함수만들기

사용자 정의 함수 선언은 function이라는 단어로 시작합니다:

Syntax

function functionName() {
  code to be executed;
}

Note: 함수 이름은 문자 또는 밑줄로 시작해야 합니다. 함수 이름은 대소문자를 구분하지 않습니다.

Tip: 함수가 하는 일을 반영하는 이름을 지정하십시오!

아래 예에서는 "writeMsg()"라는 함수를 만듭니다. 여는 중괄호( { )는 함수 코드의 시작을 나타내고 닫는 중괄호( } )는 함수의 끝을 나타냅니다. 함수는 "Hello world!"를 출력합니다. 함수를 호출하려면 이름 뒤에 대괄호()를 붙이기만 하면 됩니다:

Example

<?php
function writeMsg() {
  echo "Hello world!";
}

writeMsg(); // call the function
?>
Try it Yourself »

PHP Function 함수 인수

정보는 인수를 통해 함수에 전달할 수 있습니다. 인수는 변수와 같습니다.

인수는 함수 이름 뒤에 괄호 안에 지정됩니다. 원하는 만큼 인수를 추가할 수 있으며 쉼표로 구분하면 됩니다.

다음 예에는 하나의 인수($fname)가 있는 함수가 있습니다. familyName() 함수가 호출되면 이름(예: Jani)도 전달하고 이름은 함수 내부에서 사용되며 여러 다른 이름을 출력하지만 성은 동일합니다.

Example

<?php
function familyName($fname) {
  echo "$fname Refsnes.<br>";
}

familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
Try it Yourself »

다음 예제에는 두 개의 인수($fname 및 $year)가 있는 함수가 있습니다.

Example

<?php
function familyName($fname, $year) {
  echo "$fname Refsnes. Born in $year <br>";
}

familyName("Hege""1975");
familyName("Stale""1978");
familyName("Kai Jim""1983");
?>
Try it Yourself »

PHP is a Loosely Typed Language

위의 예에서 변수가 어떤 데이터 유형인지 PHP에 알릴 필요가 없음을 주목하십시오.

PHP는 값에 따라 데이터 유형을 변수에 자동으로 연결합니다. 데이터 유형이 엄격한 의미로 설정되지 않기 때문에 오류 없이 정수에 문자열을 추가하는 것과 같은 작업을 수행할 수 있습니다.

PHP 7에서는 유형 선언이 추가되었습니다. 이렇게 하면 함수를 선언할 때 예상되는 데이터 유형을 지정할 수 있는 옵션이 제공되며, 엄격한 선언을 추가하면 데이터 유형이 일치하지 않으면 "치명적인 오류"가 발생합니다.

다음 예제에서는 strict를 사용하지 않고 숫자와 문자열을 모두 함수에 보내려고 합니다.

Example

<?php
function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5"5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
?>
Try it Yourself »

엄격함을 지정하려면 declare(strict_types=1);을 설정해야 합니다. 이것은 PHP 파일의 맨 처음 줄에 있어야 합니다.

다음 예제에서는 숫자와 문자열을 모두 함수에 보내려고 하지만 여기에는 엄격한 선언을 추가했습니다.

Example

<?php declare(strict_types=1); // strict requirement

function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5"5 days");
// since strict is enabled and "5 days" is not an integer, an error will be thrown
?>
Try it Yourself »

strict (엄격한) 선언은 사물을 의도한 방식으로 사용하도록 합니다.


PHP 기본인수 값

다음 예는 기본 매개변수를 사용하는 방법을 보여줍니다. 인수 없이 setHeight() 함수를 호출하면 기본값을 인수로 사용합니다.

Example

<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
Try it Yourself »

PHP Functions - Return(반환) 값

함수가 값을 반환하도록 하려면 return문을 사용합니다.

Example

<?php declare(strict_types=1); // strict requirement
function sum(int $x, int $y) {
  $z = $x + $y;
  return $z;
}

echo "5 + 10 = " . sum(510) . "<br>";
echo "7 + 13 = " . sum(713) . "<br>";
echo "2 + 4 = " . sum(24);
?>
Try it Yourself »

PHP Return(반환) Type 선언

PHP 7은 return문에 대한 유형 선언도 지원합니다. 함수 인수에 대한 형식 선언과 마찬가지로 엄격한 요구 사항을 활성화하면 형식 불일치에 대해 "치명적인 오류"가 발생합니다.

함수 반환 유형을 선언하려면 함수 선언 시 여는 중괄호( { ) 바로 앞에 콜론( : )과 유형을 추가합니다.

다음 예제에서는 함수의 반환 유형을 지정합니다.

Example

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
  return $a + $b;
}
echo addNumbers(1.25.2);
?>
Try it Yourself »

인수 유형과 다른 반환 유형을 지정할 수 있지만 반환 유형이 올바른지 확인하십시오.

Example

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
  return (int)($a + $b);
}
echo addNumbers(1.25.2);
?>
Try it Yourself »

참조로 인수 전달 

PHP에서 인수는 일반적으로 값으로 전달됩니다. 즉, 값의 복사본이 함수에서 사용되며 함수에 전달된 변수는 변경할 수 없습니다.

함수 인수가 참조로 전달되면 인수를 변경하면 전달된 변수도 변경됩니다. 함수 인수를 참조로 바꾸려면 & 연산자가 사용됩니다.

Example

참조로 전달 인수를 사용하여 변수를 업데이트합니다:

<?php
function add_five(&$value) {
  $value += 5;
}

$num 2;
add_five($num);
echo $num;
?>
Try it Yourself »


 


Total 82
번호 제목 글쓴이 조회 날짜
82 88 02-25
81 99 02-27
80 98 02-25
79 72 02-27
78 53 02-25
77 86 02-27
76 33 04-11
75 65 02-28
74 38 04-12
73 66 02-28
72 28 04-13
71 63 03-01
70 62 03-01
69 31 04-14
68 52 03-02
RSS

오픈런하우스

1인가구를 위한 원룸형 아파트 쉐어하우스, 1인기업(프리랜서)을 위한 홈오피스형 공유주택

GO!