Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

call_user_func_array

Functions-Funktionen

    Befehl:
mixed call_user_func_array ( callable $callback , array $param_arr )


    Beschreibung:
Mit call_user_func_array() kann man eine benutzerdefinierte Funktion (function_name) aufrufen. Dieser benutzerdefinierten Funktion wird das Array paramarr als Argument übergeben.
Als Ergebnis liefert call_user_func_array() den Rückgabewert der aufgerufenen Funktion.


    Aktiv in Version:
(PHP 4 >= 4.0.4, PHP 5, PHP 7)

    Siehe auch:
Aufruf einer benutzerdefinierten Funktion
 

call_user_func_array() - Beispiel


Eingabe:
<?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";
    }
}


// Rufen Sie die foobar()-Funktion mit 2 Argumenten
call_user_func_array("foobar", array("one", "two"));

// Rufen Sie die $ foo->bar()-Methode mit 2 Argumenten
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>


Ausgabe:
foobar got one and two
foo::bar got three and four
Beispiel call_user_func_array() mit Namespacename


Eingabe:
<?php
namespace Foobar;

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

// Ab PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// Ab PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>


Ausgabe:
Hello Hannes!
Hello Philip!
Mit Lambda-Funktion


Eingabe:
<?php

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

var_dump(call_user_func_array($func, array(2, 4))); /* As of PHP 5.3.0 */

?>


Ausgabe:
int(8)
Beispiel


Eingabe:
<?PHP
$_POST['name'] = 'Enseleit';

$_POST['vorname'] = 'Damir';

$_POST['homepage'] = 'SELFPHP';

function debug ( $var, $val )
{
    echo '*** ' . $var . ' ***' . "\n";

    echo 'Datum: ' . date ( 'm.d.Y' ) . "\n";

    echo 'Uhrzeit: ' .  date ( 'H:i:s' ) . "\n";

    if ( is_array ( $val ) || is_object ( $val ) || is_resource ( $val ) )
    {
        print_r ( $val );
    }
    else
    {
        echo "\n" . $val . "\n";
    }
    echo '***' . "\n\n";
}

call_user_func_array ( 'debug', array ( 'Formulardaten', $_POST ) );
?>


Ausgabe:
*** Formulardaten ***
Datum: 07.06.2004
Uhrzeit: 21:51:56
Array
(
    [name] => Enseleit
    [vorname] => Damir
    [homepage] => SELFPHP
)
***
Functions-Funktionen