코어 포인트
PHP의 고차 함수는 하나 이상의 함수를 입력으로 받아들이거나 함수를 출력으로 반환 할 수있는 함수를 나타냅니다. 이 기능은 쉽게 확장 및 코드 재사용을위한 코드 유연성을 향상시킵니다.
PHP에서 키워드callable
라는 함수는 여러 입력 함수를 취하고 여러 매개 변수에서 작동합니다. callable
array_map
이 기사는 주로 함수를 매개 변수로 전달하는 데 중점을 둘 것입니다. 매개 변수 및 반환 함수는 결과로서 비 국한 변수 및 폐쇄의 개념을 간단히 소개합니다. (이전 단락에 연결된 Wikipedia 기사의 1.1, 1.4 및 1.3 섹션 에서이 개념에 대한 자세한 내용을 읽을 수 있습니다.)
callable
callable
return
return
<code class="language-php">// 我们将传递给高阶函数的简单用户定义函数 function echoHelloWorld() { echo "Hello World!"; } // 接受函数作为输入并调用它的高阶函数 function higherOrderFunction(callable $func) { $func(); } // 调用我们的高阶函数并传入我们的echoHelloWorld()函数。 // 请注意,我们只将名称作为字符串传递,没有括号。 // 这将输出 "Hello World!" higherOrderFunction('echoHelloWorld'); </code>
아마도 고차 함수 자체는 어떤 유형의 기능을 받을지 알 수 없습니다. 기능이받는 기능에 대한 정보를 알아야한다고 누가 말합니까? 입력 함수는 한동안
함수 일 수 있으며 다음 순간은 기능 일 수 있습니다. 두 경우 모두 잘 작동합니다.<code class="language-php">// 返回PHP中名为trim()的现有函数。注意它是一个简单的字符串,没有括号。 function trimMessage1() { return 'trim'; } // 这是一个使用匿名内联函数的示例 function trimMessage2() { return function($text) { return trim($text); }; } // 返回'trim'函数 $trim1 = trimMessage1(); // 使用我们的字符串进行修剪并调用它 echo $trim1(' hello world '); // 返回内部调用'trim'的匿名函数 $trim2 = trimMessage1(); // 使用我们的字符串进行修剪并再次调用它 echo $trim2(' hello world ');</code>
를 가지고 있다고 가정하지만 나중에
함수를 추가해야합니다. 함수를 작성하고 변경하지 않고 고차 기능을 통해 전달할 수 있습니다. 나중에 예제에서, 우리는이 기능을 사용하여 고유 한 및
로 호출 할 수 있습니다. 이 경우, 계산 된 기능은받는 기능이 무엇을하는지 신경 쓰지 않습니다. 그것은 단지 인수를 함수에 전달하고 결과를 반환합니다.
마지막으로, 그것을 php : 결론
이 기사에서는 기능을 고차 기능으로 만드는 기본 정의를 소개합니다. 함수 (또는 둘 다)를 수락하거나 반환하는 함수는 고차 기능으로 간주 될 수 있습니다. 또한 이러한 유형의 기능과 장점을 만들고 싶은 이유에 대해서도 논의합니다.
PHP의 고차 함수는 기능 프로그래밍의 기본 개념입니다. 그것들은 다른 기능에서 인수로 받아들이거나 결과로 반환함으로써 작동 할 수있는 기능입니다. 이를 통해보다 추상적이고 간결한 코드가 가능하여 가독성과 유지 관리가 향상됩니다. 고급 주문 기능을 사용하면 코드 복제 및 복잡성을 줄여 코드가보다 효율적이고 디버깅하기가 더 쉬워집니다. 함수를 고려해 봅시다. 콜백 함수와 배열을 매개 변수로 사용하고 배열의 각 요소에 콜백 함수를 적용하며 결과가 포함 된 새 배열을 반환합니다.
예, PHP의 고차 기능은 여러 기능을 반환 할 수 있습니다. 이것은 일반적으로 다양한 함수를 반환하여 수행됩니다. 그러나 각 반환 된 기능에는 고유 한 범위가 있으며 다른 반환 된 함수와 변수를 공유하지 않습니다.
PHP의 폐쇄는 주변 범위에서 변수를 캡처하는 익명 함수입니다. 그들은 종종 매개 변수보다 더 많은 데이터에 액세스하는 함수의 생성을 허용하기 때문에 더 높은 차수 기능으로 사용됩니다. 이는보다 유연하고 재사용 가능한 코드를 작성하는 데 매우 유용합니다. 예, PHP는 일부 내장 고차 기능을 제공합니다. 몇 가지 예로는 , 입력 매개 변수를 수용하는 함수/메소드를 찾으면 찾았습니다. 다음은 일반적으로 사용되는 고차 기능의 몇 가지 예입니다. 당신은 당신의 지식없이 그것들을 사용했을 수도 있습니다.
callable
로, 함수와 매개 변수 목록과 해당 함수를 호출합니다. 이것은 본질적으로 사용자 정의 고차 기능입니다. 전체 목적은 다른 사용자 정의 기능을 호출하는 것입니다.
array_map
및 array_filter
는 많은 코드 프로젝트에서 찾을 수있는 매우 인기있는 두 가지 고차 기능입니다. 당신이 사용할 수있는 또 다른 함수는 <code class="language-php">// 我们将传递给高阶函数的简单用户定义函数
function echoHelloWorld() {
echo "Hello World!";
}
// 接受函数作为输入并调用它的高阶函数
function higherOrderFunction(callable $func) {
$func();
}
// 调用我们的高阶函数并传入我们的echoHelloWorld()函数。
// 请注意,我们只将名称作为字符串传递,没有括号。
// 这将输出 "Hello World!"
higherOrderFunction('echoHelloWorld'); </code>
<code class="language-php">// 返回PHP中名为trim()的现有函数。注意它是一个简单的字符串,没有括号。
function trimMessage1() {
return 'trim';
}
// 这是一个使用匿名内联函数的示例
function trimMessage2() {
return function($text) {
return trim($text);
};
}
// 返回'trim'函数
$trim1 = trimMessage1();
// 使用我们的字符串进行修剪并调用它
echo $trim1(' hello world ');
// 返回内部调用'trim'的匿名函数
$trim2 = trimMessage1();
// 使用我们的字符串进行修剪并再次调用它
echo $trim2(' hello world ');</code>
우리의 기능은 매우 일반적인 방식으로 작성되어 다른 함수 세트를 수신하고 매개 변수 및 array_filter
array_map
: 를 통과하면됩니다.
call_user_func
$arrayOfNums = [1,2,3,4,5];
// array_map:使用内联匿名函数的示例
$doubledNums = array_map(function($num) {
return $num * 2;
}, $arrayOfNums);
var_dump($doubledNums); // 输出包含 [2, 4, 6, 8, 10] 的数组
Python에서 간단한 데코레이터를 예로 들어 JavaScript와 비교 한 다음 PHP와 비교해 봅시다. 그렇게하면 Python 또는 JS를 알고 있다면 그것이 동일하다는 것을 알 수 있습니다.
calc()
와 비교해 봅시다
<code class="language-php">$arrayOfNums = [1,2,3,4,5];
// 创建函数并将其提供给高阶函数array_filter()的示例
function isEven($num) {
return ($num % 2) === 0;
}
// array_filter是一个高阶函数
$evenNums = array_filter($arrayOfNums, 'isEven');
var_dump($evenNums); // 输出包含 [2, 4] 的数组</code>
array_map
array_filter
PHP의 정상 함수는 특정 작업을 수행하고 결과를 반환합니다. 반면에, 고차 함수는 하나 이상의 함수를 매개 변수로, 결과로 반환 함수를 또는 동시에이 두 특성을 가질 수 있습니다. 이를 통해 코드에서 유연성과 추상화가 더 높아서 코드가 적은 복잡한 기능을 생성 할 수 있습니다. calc()
<code class="language-php">// 我们将传递给高阶函数的简单用户定义函数
function echoHelloWorld() {
echo "Hello World!";
}
// 接受函数作为输入并调用它的高阶函数
function higherOrderFunction(callable $func) {
$func();
}
// 调用我们的高阶函数并传入我们的echoHelloWorld()函数。
// 请注意,我们只将名称作为字符串传递,没有括号。
// 这将输出 "Hello World!"
higherOrderFunction('echoHelloWorld'); </code>
PHP의 고차 기능은 여러 가지 이점을 제공합니다. 더 추상적이고 간결한 코드를 허용하여 가독성과 유지 관리를 향상시킬 수 있습니다. 또한 코드 복제 및 복잡성을 줄여서 코드를보다 효율적이고 디버깅하기 쉽게 할 수 있습니다. 또한 고차 기능은 다른 행동을 다른 행동으로 전달하여 다른 동작을 달성 할 수 있기 때문에 코드 재사용을 용이하게 할 수 있습니다.
예, PHP의 고차 함수는 다른 스코프의 함수를 받아 들일 수 있습니다. 이는 PHP가 일류 함수를 지원하기 때문에 다른 함수의 매개 변수로 함수를 전달하고, 다른 함수에 의해 반환되고, 변수에 할당 될 수 있음을 의미합니다.
<code class="language-php">// 返回PHP中名为trim()的现有函数。注意它是一个简单的字符串,没有括号。
function trimMessage1() {
return 'trim';
}
// 这是一个使用匿名内联函数的示例
function trimMessage2() {
return function($text) {
return trim($text);
};
}
// 返回'trim'函数
$trim1 = trimMessage1();
// 使用我们的字符串进行修剪并调用它
echo $trim1(' hello world ');
// 返回内部调用'trim'的匿名函数
$trim2 = trimMessage1();
// 使用我们的字符串进行修剪并再次调用它
echo $trim2(' hello world ');</code>
및
가 포함됩니다. 이러한 기능은 콜백 기능을 인수로 받아들이고 다양한 방식으로 배열의 요소에 적용합니다.
위 내용은 PHP의 기능 프로그래밍 : 고차 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!