기존 규칙은 먼저 코드를 작성한 다음 이야기하는 것입니다.
<?php function showArray($cols) {     foreach ($cols as $obj) {         echo $obj . " ";     }     echo "<br>"; } function showObj($obj) { echo $obj . " "; } //mswap传入的是引用类型。 function mswap(&$a, &$b) { $tmp = $a; $a = $b; $b = $tmp; } function bubbleSort(&$cols) { $len = count($cols); for ($i = 0; $i < $len; $i++) {         for ($j = 1; $j < $len - $i; $j++) {             if ($cols[$j - 1] > $cols[$j]) { mswap($cols[$j - 1], $cols[$j]); } } } } $data = array( 8, 2, 3, 9, 0, 45, 35, 235 ); //排序 bubbleSort($data); //打印数组 showArray($data); //使用回调函数依次遍历打印数组 array_map('showObj', $data); echo "<br>"; //使用匿名函数依次遍历打印数组 array_map(create_function('$obj', 'echo $obj." " ;'), $data); ?>프로그램 출력:
코드의 기능은 매우 간단합니다. 먼저 배열을 초기화한 다음 정렬하고 마지막으로 세 가지 방법으로 인쇄합니다.
정렬 알고리즘은 가장 간단한 버블 정렬을 사용하므로 이에 대해서는 자세히 설명하지 않습니다.
주의할 점은 다음과 같습니다.
(1) 정렬 기능과 스왑 기능 모두 전달 참조 방식을 사용합니다. 값 전달 방법을 사용하면 정렬 및 교체 기능이 적용되지 않습니다. 왜냐하면 이 때 함수는 실제로 매개변수 개체의 복사본에서 작동하기 때문입니다.
(2) array_map은 PHP와 함께 제공되며, 그 기능은 배열의 각 개체에 대해 전달된 함수를 순서대로 호출하는 것입니다. 이 방법을 콜백이라고 합니다.
(3) create_function은 익명 함수를 생성할 수 있습니다. 마지막으로 인쇄된 예에서 array_map에 대한 인수로 사용되는 것은 생성된 익명 함수입니다.
실제로 숙련된 프로그래머는 C++11과 PHP 모두에서 익명 함수가 비효율적이라는 것을 알고 있습니다. 그렇다면 왜 익명 함수를 사용합니까? C# 및 Java의 새로운 표준도 이를 지원하는 이유는 무엇입니까?
유명한 기능은 직관적인 것처럼 보이지만 관리 비용이 발생하기 때문입니다. 기능이 하나 더 있다는 것은 관리할 공간이 하나 더 있다는 의미입니다. 그리고 "마이크로" 코드 조각의 경우 이름이 지정된 함수를 작성하는 것만으로는 충분하지 않은 것 같습니다. 그러나 이것이 익명 함수가 남용될 수 있다는 의미는 아닙니다. 코드 조각이 너무 큰 경우 익명 함수를 사용하면 가독성이 심각하게 손상됩니다. 익명 함수의 사용은 상황에 따라 다릅니다.
위 내용은 PHP와 함수를 포함하여 PHP에서 익명 함수를 사용하는 방법을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.