PHP.mk документација

call_user_func_array

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.call-user-func-array.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.call-user-func-array.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
call_user_func_array

Референца за `function.call-user-func-array.php` со подобрена типографија и навигација.

function.call-user-func-array.php

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

call_user_func_arrayПовикај враќање со низа од параметри

= NULL

call_user_func_array(callable $callback, array $args): mixed

Ги повикува callback дадено од првиот параметар со параметрите во args.

Параметри

callback

На callable што треба да се повика.

args

Параметрите што треба да се предадат на враќањето, како низа.

Ако клучевите на args се сите нумерички, клучевите се игнорираат и секој елемент ќе биде предаден на callback како позициски аргумент, по ред.

Ако некој од клучевите на args се низи, тие елементи ќе бидат предадени на callback како именувани аргументи, со името дадено од клучот.

Фатална грешка е да има нумерички клуч во args се појави по клуч од низа, или да има клуч од низа што не одговара на името на кој било параметар од callback.

Вратени вредности

Враќа вратената вредност на враќањето, или false при грешка.

Дневник на промени

Верзија = NULL
8.0.0 args клучевите сега ќе се толкуваат како имиња на параметри, наместо да се игнорираат тивко.

Примери

Пример #1 call_user_func_array() example

<?php
function foobar($arg, $arg2) {
echo
__FUNCTION__, " got $arg and $arg2\n";
}
class
foo {
function
bar($arg, $arg2) {
echo
__METHOD__, " got $arg and $arg2\n";
}
}


// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

Горниот пример ќе прикаже нешто слично на:

foobar got one and two
foo::bar got three and four

Пример #2 call_user_func_array() користење на именскиот простор име

<?php

namespace Foobar;

class
Foo {
static public function
test($name) {
print
"Hello {$name}!\n";
}
}

call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

Горниот пример ќе прикаже нешто слично на:

Hello Hannes!
Hello Philip!

Пример #3 Користење на ламбда функција

<?php

$func
= function($arg1, $arg2) {
return
$arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4)));

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

int(8)

Пример #4 Предавање вредности по референца

<?php

function mega(&$a){
$a = 55;
echo
"function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo
"global \$bar=$bar\n";

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

function mega $a=55
global $bar=55

Генератор call_user_func_array() користење именувани аргументи

<?php
function foobar($first, $second) {
echo
__FUNCTION__, " got $first and $second\n";
}

// Call the foobar() function with named arguments in non-positional order
call_user_func_array("foobar", array("second" => "two", "first" => "one"));

// Call the foobar() function with one named argument
call_user_func_array("foobar", array("foo", "second" => "bar"));

// Fatal error: Cannot use positional argument after named argument
call_user_func_array("foobar", array("first" => "one", "bar"));

?>

Горниот пример ќе прикаже нешто слично на:

foobar got one and two
foobar got foo and bar

Fatal error: Uncaught Error: Cannot use positional argument after named argument

Белешки

Забелешка:

Повиците регистрирани со функции како call_user_func() and call_user_func_array() нема да бидат повикани ако има фатена исклучок фрлен во претходен повик.

Види Исто така

Белешки од корисници 1 белешка

sebastian dot rapetti at tim dot it
пред 5 години
Using PHP 8, call_user_func_array call callback function using named arguments if an array with keys is passed to $args parameter, if the array used has only values, arguments are passed positionally.

<?php

function test(string $param1, string $param2): void
{
    echo $param1.' '.$param2;
}

$args = ['hello', 'world'];
//hello world
call_user_func_array('test', $args);

$args = ['param2' => 'world', 'param1' => 'hello'];
//hello world
call_user_func_array('test', $args);

$args = ['unknown_param' => 'hello', 'param2' => 'world'];
//Fatal error: Uncaught Error: Unknown named parameter $unknown_param
call_user_func_array('test', $args);
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.