이 기사에서는 주로 PHP의 콜백 함수 유형 전송 방법을 공유합니다. 여기서는 array_map() 함수를 통해 테스트해 보겠습니다.
메서드 1, 전역 함수
function foo($val){ return intval($val)+1; } $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 $res = array_map('foo', $arr); /** 输出如下: array (size=6) 0 => int 1 1 => int 3 2 => int 1 3 => int 6 4 => int 1 5 => int 8 */
메서드 2, 클래스 퍼블릭 함수
class Demo { public function foo($val){ return intval($val)+1; } } $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 $res = array_map(array(new Demo, 'foo'), $arr);
메서드 3, 클래스 프라이빗 함수
class Demo { private function foo($val){ return intval($val)+1; } public function test(){ $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 $res = array_map(array($this, 'foo'), $arr); return $res; } } $demo = new Demo; $result = $demo->test();
메서드 4, 클래스 퍼블릭 정적 메서드
class Demo { static public function foo($val){ return intval($val)+1; } } $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 以下两种方式都可以 $res = array_map('Demo::foo', $arr); //$res = array_map(array('Demo', 'foo'), $arr);
메서드 5, 클래스 프라이빗 정적 메서드
class Demo { static private function foo($val){ return intval($val)+1; } static public function test(){ $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 这里可以使用两种传递方式 $res = array_map(array('self', 'foo'), $arr); //$res = array_map('self::foo', $arr); //$res = array_map(array('Demo', 'foo'), $arr); //$res = array_map('Demo::foo', $arr); return $res; } } $result = Demo::test();
메서드 6 , 익명 함수
$foo = function($val){ return intval($val)+1; }; $arr = array('a',2,'b',5,'c',7); //回调函数传递方式 $res = array_map($foo, $arr);
관련 권장 사항:
PHP 콜백 함수 및 익명 함수 사용에 대한 자세한 설명
위 내용은 PHP 콜백 함수 유형 전송 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!