> 백엔드 개발 > PHP 튜토리얼 > PHP 사용자 정의 함수 공식 문서

PHP 사용자 정의 함수 공식 문서

WBOY
풀어 주다: 2016-07-29 09:16:09
원래의
901명이 탐색했습니다.

함수는 다음 구문으로 정의할 수 있습니다.

예제 #1 함수의 목적을 나타내는 의사 코드

<span><span><?php<br></span><span>function </span><span>foo</span><span>(</span><span>$arg_1</span><span>, </span><span>$arg_2</span><span>, </span><span>/* ..., */ </span><span>$arg_n</span><span>)<br>{<br> echo </span><span>"Example function.n"</span><span>;<br> return </span><span>$retval</span><span>;<br>}<br></span><span>?></span></span>

모든 유효한 PHP 코드가 함수 내부에 나타날 수 있으며, 심지어 다른 함수 및 클래스 정의도 나타날 수 있습니다.

함수 이름에는 PHP의 다른 식별자와 동일한 명명 규칙이 있습니다. 유효한 함수 이름은 문자나 밑줄로 시작하고 그 뒤에 문자, 숫자 또는 밑줄이 옵니다. 정규식으로 표현할 수 있습니다: [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*.

Tip

이 다음 두 예에서 조건부로 함수가 정의된 경우를 제외하고는 함수를 호출하기 전에 정의할 필요가 없습니다.

함수를 조건부로 정의하는 경우 함수를 호출하기 전에 정의해야 합니다.

예시#2 조건부 함수

<span><span><?php<br>$makefoo </span><span>= </span><span>true</span><span>;<br></span><span>/* 不能在此处调用foo()函数,<br> 因为它还不存在,但可以调用bar()函数。*/<br></span><span>bar</span><span>();<br>if (</span><span>$makefoo</span><span>) {<br> function </span><span>foo</span><span>()<br> {<br> echo </span><span>"I don't exist until program execution reaches me.n"</span><span>;<br> }<br>}<br></span><span>/* 现在可以安全调用函数 foo()了,<br> 因为 $makefoo &#20540;为真 */<br></span><span>if (</span><span>$makefoo</span><span>) </span><span>foo</span><span>();<br>function </span><span>bar</span><span>()<br>{<br> echo </span><span>"I exist immediately upon program start.n"</span><span>;<br>}<br></span><span>?></span></span>

예시#3 함수 내 함수

<span><span><?php<br></span><span>function </span><span>foo</span><span>()<br>{<br> function </span><span>bar</span><span>()<br> {<br> echo </span><span>"I don't exist until foo() is called.n"</span><span>;<br> }<br>}<br></span><span>/* 现在还不能调用bar()函数,因为它还不存在 */<br></span><span>foo</span><span>();<br></span><span>/* 现在可以调用bar()函数了,因为foo()函数<br> 的执行使得bar()函数变为已定义的函数 */<br></span><span>bar</span><span>();<br></span><span>?></span></span>

PHP의 모든 함수와 클래스는 전역 범위를 가지며 함수 내에서 정의할 수 있고 그 반대의 경우도 마찬가지입니다.

PHP는 함수 오버로딩을 지원하지 않으며 선언된 함수를 정의 해제하거나 재정의하는 것이 불가능합니다.

참고: 함수 이름은 대소문자를 구분하지만, 함수를 호출할 때는 정의할 때와 동일한 형식을 사용하는 것이 좋습니다.

PHP에서는 재귀 함수를 호출할 수 있습니다.

예제 #4 재귀 함수

<code><span><span><?php<br></span><span>function </span><span>recursion</span><span>(</span><span>$a</span><span>)<br>{<br> if (</span><span>$a </span><span>< </span><span>20</span><span>) {<br> echo </span><span>"</span><span>$a</span><span>n"</span><span>;<br> </span><span>recursion</span><span>(</span><span>$a </span><span>&#43; </span><span>1</span><span>);<br> }<br>}<br></span><span>?></span></span>

함수

재귀(

$a

)
{
if (

$a

<

20<🎜><🎜>) {
에코 <🎜><🎜>"<🎜><🎜>$a<🎜><🎜>n"<🎜><🎜>;< br>                                                      
}
<🎜><🎜>?>참고: 하지만 피하세요. 재귀 100-200 수준을 초과하는 함수/메서드 호출로 인해 스택이 축소되고 현재 스크립트가 종료될 수 있습니다. 무한 재귀는 프로그래밍 오류로 간주될 수 있습니다. 저작권: 이 글은 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다. 위 내용은 PHP 사용자 정의 기능에 대한 공식 문서를 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿