PHP call_user_func_array

王林
풀어 주다: 2024-08-29 12:46:02
원래의
585명이 탐색했습니다.

PHP에서 call_user_func는 PHP에서 생성된 호출 호출을 제공하는 내장 함수 중 하나입니다. call_user_func_array 호출은 모두 배열로 래핑된 매개변수를 전달하기 위한 콜백으로 정의되며 이러한 콜백 함수는 다음과 같습니다. call_user_func_array로 알려져 있습니다. 일반적으로 call_user_func-array는 콜백 함수인 call_user_func로 정의됩니다. 이 콜백은 배열로 래핑된 이러한 매개변수를 사용하여 첫 번째 매개변수에 의해 제공된 콜백을 호출합니다. 이는 PHP 라이브러리에서 제공하는 call_user_func_array 함수로 알려져 있으므로 이 함수는 사용자를 호출합니다. 주어진 매개변수 배열로 함수를 실행합니다.

광고 이 카테고리에서 인기 있는 강좌 PHP 개발자 - 전문 분야 | 8개 코스 시리즈 | 3가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문:

mixed call_user_func_array( callable $callback, array $args);
로그인 후 복사

위 구문에서 callable 매개변수는 호출해야 하는 "호출 가능"한 콜백 함수이고, 두 번째 매개변수 "args"는 이 "args" 매개변수가 전달될 매개변수 배열입니다. 콜백 함수를 인덱스 배열로 사용합니다. 따라서 콜러블은 콜러블 함수로 알려진 사용자 정의 함수를 호출할 수 있으며 다른 매개변수는 PHP 프로그램에서 이 함수를 사용할 때 이 call_user_func-array의 두 인수가 모두 필수로 지정되는 매개변수 배열로 구성됩니다. 따라서 이 내장 함수는 첫 번째 인수에 지정되거나 선언된 콜백을 호출하고 나머지 매개변수는 일반적으로 사용자 정의 함수를 호출하는 데 사용되는 이 함수의 두 번째 인수에 매개변수 배열로 전달됩니다.
위 구문 함수는 조건이 충족되면 콜백의 반환 값을 반환하고, 그렇지 않으면 오류가 발생하면 false를 반환합니다.

call_user_func_array() 함수는 어떻게 작동하나요?

Php에는 일반적으로 호출 가능 매개변수가 호출되도록 선언되는 이 함수의 첫 번째 매개변수로 전달되는 콜백 함수를 호출하는 데 사용되는 내장 함수 call_func_user()가 있습니다. 이 동일한 함수는 남은 매개변수를 배열로 인수로 전달하는 데 사용됩니다. PHP에는 call_user_func_array()와 같은 또 다른 함수가 있으며 이 함수는 다음과 같이 작동합니다. 먼저 첫 번째 매개변수가 항상 콜백 함수인 매개변수를 확인합니다. 호출 가능하고 이 함수에 호출되면 나머지 매개변수를 호출되는 콜백에 대한 두 번째 인수로 매개변수의 배열로 전달합니다. 자세히 말하면 첫 번째 매개변수 콜백은 이 call_user_func_array 함수를 지정하기 전에 프로그램에 정의된 함수를 호출하고 이 함수는 이름을 사용하여 호출 함수 내에서 선언되며 함수의 매개변수를 두 번째 인수로 전달합니다. call_user_func_array는 매개변수의 배열이 될 나머지 매개변수로 사용됩니다. 아래 섹션의 예를 통해 이 기능의 명확한 작동을 살펴보겠습니다.

예시 #1

코드:

<?php
echo "Demonstration of call_user_func_array in PHP ";
echo " \n";
function func1($a, $b) {
echo __FUNCTION__, " got $a and $b\n";
}
class class_func {
function bar($a, $b) {
echo __METHOD__, " got $a and $b\n";
}
}
call_user_func_array("func1", array("one", "two"));
$class_func = new class_func;
call_user_func_array(array($class_func, "bar"), array("three", "four"));
?>
로그인 후 복사

출력:

PHP call_user_func_array

In the above example, we can see that to write any PHP program we first start with “ ”. Then to print any message to the console then we use the “echo” command. Firstly we declare a function with the name “func1” and this function has two different parameters passed to this function func1 and this function has only an echo command which will print the values passed as a parameter to this function when called. This function func1() is called using a callback parameter in the call_user_func_array as seen in line 16 and then we pass values to the parameters declared for the function func1() as “one” and “two” which will be taken as an array of parameters to the call-user_func_array where this is one of the helpful facts of this function where we can call the function along with the values of its parameters passed using any number of parameters to the given or defined function in the program. Then we are using the class method also where we are defining a class with the name “class_func” and then using the class object created using the “new” command, later we use the call_user_func_array function to print the values of the function “bar” which is defined within the class, therefore, we first pass the class name as the first parameter to the array function and then “bar” function as the second parameter to the array function then later we will be passing remaining parameters of the bar as the second argument to the array function. The output of the above program can be seen in the screenshot above.

Example #2

In this example, we will see calling the call_user_func_array using the namespace name in the below program. In the above program, we saw using the class method for the demonstration of call_user_func_array.

Code:

<?php
namespace func1;
echo "Demonstration of call_user_func_array in PHP using namespace ";
echo " \n ";
class class_func {
static public function test($n) {
print "Hello {$n}!\n";
}
}
call_user_func_array(__NAMESPACE__ .'\class_func::test', array('Educba'));
call_user_func_array(array(__NAMESPACE__ .'\class_func', 'test'), array('People'));
?>
로그인 후 복사

Output:

PHP call_user_func_array

In the above program which is similar to the previous example but in this program we are using namespace as function name and then we are declaring the class where when using call_user_func_array we use “_NAmESPACE_” instead of “_FUNCTION_” in it and then pass the other parameters as an array to this function which will print the values or logic of the class “test” function where it prints the values passed as the “n” value along with the message given and in this program, we are printing two messages by passing these “values”. The output of this program is as shown in the above screenshot.

Conclusion

In this article, we conclude that in PHP call_user_func_array function as a callback function which is user-defined as we are declaring the callable callback function as the first argument and the remaining parameter of that function as the second argument. We should note that we are passing parameters with its values but we are not passing the reference. Therefore, this function can be used whenever there are any array of parameters for the function we can easily use and execute the given function using this call_user_func_array function in PHP.

위 내용은 PHP call_user_func_array의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!