PHP의 함수는 매우 단순해 보이지만 실제로는 함수 이름이 고정되어 있는지 여부에 따라 다음 세 가지 범주로 나눌 수 있습니다.
1. 고정된 이름을 가진 함수:
일반 함수라고도 하는 이 유형의 함수는 가장 친숙한 유형인 function 키워드를 사용하여 직접 생성됩니다. 예:
<?php //1按名调用:最直接和普通的方式echo '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 중국어 웹사이트의 기타 관련 기사를 참조하세요!