>  기사  >  백엔드 개발  >  PHP 함수의 종류와 호출 방식 공개

PHP 함수의 종류와 호출 방식 공개

天蓬老师
天蓬老师원래의
2017-04-27 11:29:292259검색

PHP의 함수는 매우 단순해 보이지만 실제로는 함수 이름이 고정되어 있는지 여부에 따라 다음 세 가지 범주로 나눌 수 있습니다.

1. 고정된 이름을 가진 함수:

일반 함수라고도 하는 이 유형의 함수는 가장 친숙한 유형인 function 키워드를 사용하여 직접 생성됩니다. 예:

<?php
//1按名调用:最直接和普通的方式echo 
&#39;1.用function关键字创建常规函数,按函数名称调用:<br>';
function add($a, $b){return $a.'+'.$b.'='.($a+$b);};
echo add(5,6);
echo '<hr>';

실행 반환:

1.用function关键字创建常规函数,按函数名称调用:
5+6=11

2. 동적으로 설정된 함수 이름:

이런 종류의 함수에는 익명 함수, 변수 함수, 변수 함수, 클로저 함수 등 여러 가지 이름이 있습니다. 실제로는 모두 동일합니다. 이름에 겁먹지 마세요.

이 동적으로 설정된 함수는 이 함수를 참조하는 변수명을 이용하여 호출되므로 콜백함수에서 사용하기 매우 적합합니다~~

교육용으로 여기서는 총괄적으로 언급하겠습니다. as: 익명 함수.

익명 함수를 만드는 방법은 크게 두 가지가 있습니다. 일부 교과서에서는 이에 대해 별도로 설명하므로 여기서는 별도로 설명하겠습니다.

1. 생성 방법 1: PHP에 내장된 create_function(매개변수 목록, 함수 본문) 함수를 사용하여 이 함수에 두 개의 매개변수를 따옴표로 묶어야 합니다. , 그것이 PHP입니다. 규정이 만족스럽지 않으면 프로그래밍 언어를 만드십시오~~

//2.用系统函数create_function()来创建一个匿名函数/可变函数/变量函数/闭包函数echo 
'2.用内置create_function()函数创建匿名函数,用变量名调用:<br>';
$func1 = create_function('$a,$b','return $a.\'+\'.$b.\'=\'.($a+$b);');
echo $func1(5,6);
echo '<hr>';

실행 결과:

2.用内置create_function()函数创建匿名函数,用变量名调用:
5+6=11

2. 생성 방법 2: function 키워드를 사용하여 생성합니다. , 생성과정은 루틴과 동일합니다. 함수는 동일하지만, 차이점은 값의 위치, 즉 '=' 등호 오른쪽에 나타난다는 점입니다. 생성된 함수 전체를 변수에 할당합니다.

//3匿名函数:也叫闭包函数,将函数做为值赋给一个变量echo
'3.用function关键字创建匿名函数,用变量名调用:<br>';
$func2 = function ($a, $b){return $a.'+'.$b.'='.($a+$b);};
echo $func2(5,6);
echo '<hr>';

실행 결과:

3.用function关键字创建匿名函数,用变量名调用:
5+6=11

3. 함수 이름이 없습니다. 생성 후 매개변수를 직접 전달하고 실행을 호출합니다. 이 유형의 함수는 익명 함수와 비슷하지만 더 조잡합니다. 일단 생성되면 호출되기 전에 괄호로 묶이고 매개변수로 전달됩니다. 따라서 이 유형의 함수는 이름이 전혀 필요하지 않으며 일회성 함수입니다. . 일회용품과 마찬가지로 사용 후 폐기하세요.

//4自执行函数:创建完立即执行不必明示调用
echo '4.用function关键字创建匿名函数,然后直接传参调用执行:<br>';
echo (function ($a,$b){return $a.'+'.$b.'='.($a+$b);})(5,6);  
//自运行的匿名函数

실행 반환:

4.用function关键字创建匿名函数,然后直接传参调用执行:
5+6=11

요약(매우 중요, 읽어야 함):

PHP에서 함수 사용은 여전히 ​​매우 유연하지만, 무슨 일이 있어도 함수 , 최종 분석에서는 여전히 과정입니다. 동시에, 사용자가 그 존재와 가치를 인지할 수 있도록 반환값이 있어야 합니다!

그래서 함수는 항상 값으로 사용되기 때문에 등호 '='의 왼쪽에는 올 수 없습니다. 이것이 함수와 언어 구조의 가장 큰 차이점입니다.

예를 들어 echo()와 list()는 함수가 아니라 언어 구조라고 흔히 말합니다. 함수처럼 보이지만 등호 왼쪽에 배치할 수 있기 때문입니다. 그리고 할당이 허용됩니다. 하지만 기능이 작동하지 않습니다. 이 글을 통해 기능에 대한 더 깊은 이해가 되셨으면 좋겠습니다~~

위 내용은 PHP 함수의 종류와 호출 방식 공개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.