이 글에서는 PHP에서 강력하지만 거의 사용되지 않는 기능을 주로 소개하고, 함수 호출, 등록, 호출, 판단 및 기타 조작 기술을 포함하여 PHP에서 매우 실용적인 여러 기능을 예제 형식으로 요약하고 분석합니다. 도움이 필요한 친구들이 참고하면 좋을 것 같아요.
자세한 내용은 다음과 같습니다.
call_user_func_array — 배열 형식의 매개변수를 사용하여 함수 호출
call_user_func — 기존 함수 호출
create_function — 함수 생성
func_get_arg — 함수에서 매개변수 값 가져오기
func_get_args — 함수 가져오기 모든 매개변수가 배열로 결합됩니다.
func_num_args — 함수의 매개변수 개수 가져오기
function_exists — 함수 존재 여부 확인
get_define_functions — 기존 함수 정보 가져오기
register_shutdown_function — 페이지 이후에 실행될 함수 등록 로드됨
register_tick_function — 요청 시 호출된 함수 등록
unregister_tick_function — 요청 시 호출된 함수 취소
get_define_functions는 모든 PHP 함수와 사용자 정의 함수를 가져올 수 있습니다.
<?php function a(){} $b = get_defined_functions(); print_r($b); //也许会显示1000多个已定义了的函数:) ?>
function_exists 함수는 함수가 존재하는지 확인합니다(PHP 함수일 수 있음) 또는 사용자 정의 기능).
<?php if (function_exists('a')) { echo "yes"; } else { echo "no"; } function a(){} // 显示 yes ?>
call_user_func 함수는 함수를 호출하는 특별한 방법과 유사합니다. 사용 방법은 다음과 같습니다.
<?php function a($b,$c) { echo $b; echo $c; } call_user_func('a', "111","222"); call_user_func('a', "333","444"); //显示 111 222 333 444 ?>
클래스 내부에서 메서드를 호출하는 것이 이상합니다. 실제로는 배열을 사용합니다. 물론 개발자의 생각은 생략되었습니다. new도 새로운 아이디어로 가득 차 있습니다.
<?php class a { function b($c) { echo $c; } } call_user_func(array("a", "b"),"111"); //显示 111 ?>
call_user_func_array 함수는 call_user_func의 구조를 만들기 위해 매개변수가 다른 방식으로 전달된다는 점을 제외하면 call_user_func와 매우 유사합니다. 매개변수 명확화:
<?php function a($b, $c) { echo $b; echo $c; } call_user_func_array('a', array("111", "222")); //显示 111 222 ?>
call_user_func 함수와 call_user_func_array 함수 모두 참조를 지원하므로 일반 함수 호출과 기능적으로 더 일관성이 있습니다.
<?php function a(&$b) { $b++; } $c = 0; call_user_func('a', &$c); echo $c;//显示 1 call_user_func_array('a', array(&$c)); echo $c;//显示 2 ?>
func_num_args 함수는 함수에서 수신한 매개변수 수를 가져올 수 있습니다.
<?php function a() { echo func_num_args(); } a(111, 222, 333); //显示 3 ?>
func_get_arg 함수는 다음을 수행할 수 있습니다. 다음 예에서는 함수에서 어떤 매개변수가 허용되는지 지정하지 않습니다. func_get_arg를 사용하여 추가 매개변수를 얻을 수도 있습니다.
<?php function a() { echo func_get_arg(1); } a (111, 222, 333); //显示 222 ?>
func_get_args 함수는 func_get_arg와 매우 유사합니다. 모든 매개변수를 배열로 호출합니다.
<?php function a() { $numargs = func_num_args(); $b = func_get_args(); for ($i = 0; $i < $numargs; $i++) { echo $b[$i]; } } a(111, 222, 333); //显示 111 222 333 ?>
create_function 함수를 생성할 수 있습니다. 익명 함수(기본적으로 PHP에서 함수 이름은lambda_1,lambda_2)처럼 보이지만 두 번째 문이 이상하다는 점에 유의하세요. 매개변수는 ";"로 구분되어야 합니다.
<?php $newfunc = create_function('$a,$b', 'return $a + $b;'); echo $newfunc; echo $newfunc(2, 3); //显示 lambda_1 5 ?>
register_shutdown_function 함수는 페이지가 로드된 후 실행되는 함수를 등록할 수 있습니다(함수는 캐싱과 약간 비슷합니다). call_user_func 함수:
<?php function a() { echo 222 ; } echo 111; register_shutdown_function('a'); //显示 111 222 ?>
<?php class a { function b ($c) { echo $c; } } register_shutdown_function (array ('a', 'b'), '111'); //显示 111 ?>
register_tick_function 및 unregister_tick_function은 선언 프로세스 제어 메커니즘과 결합되어야 합니다. 그런 다음 먼저 선언 및 틱을 이해하겠습니다.
declare (directive){ statement }
Tick은 인터프리터가 선언 코드에서 N 개의 하위 수준 문을 실행할 때마다 발생하는 이벤트입니다. 분절. N 값은 선언의 지시문 부분에서 Ticks=N으로 지정됩니다. 각 틱에서 발생하는 이벤트는 Register_tick_function()에 의해 지정됩니다. 예는 다음과 같습니다.
<? function foo($str) { static $i = 0; print "$str: $i<br>"; $i++; } register_tick_function("foo", "count"); declare (ticks = 6) { for($i=0; $i<20; $i++) { echo "$i<br>"; } } ?>
이 예의 선언(ticks = N){statement} 프로세스 제어에서는 6줄의 코드(ticks = 6)가 실행될 때마다 foo() 함수가 한 번 실행되어야 합니다. 틱 값을 변경하면 다른 실행 결과를 얻을 수 있습니다.
관련 추천 :
PHP 함수 실행 효율성의 소소한 비교_PHP Tutorial
php 함수 사용 방법과 함수 정의 방법_ PHP Tutorial
위 내용은 강력하지만 거의 사용되지 않는 PHP 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!