関数処理 関数
PHP Manual

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_arrayパラメータの配列を指定してユーザ関数をコールする

説明

mixed call_user_func_array ( callback $function , array $param_arr )

param_arr にパラメータを指定して、 function で指定したユーザ定義関数をコールします。

パラメータ

function

コールする関数。

param_arr

関数に渡すパラメータを指定する配列。

返り値

関数の結果、あるいはエラー時に FALSE を返します。

例1 call_user_func_array() の例

<?php
function debug($var$val)
{
    echo 
"***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (
is_array($val) || is_object($val) || is_resource($val)) {
        
print_r($val);
    } else {
        echo 
"\n$val\n";
    }
    echo 
"***\n";
}

$c mysql_connect();
$host $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host"$host));
call_user_func_array('debug', array("c"$c));
call_user_func_array('debug', array("_POST"$_POST));
?>

例2 call_user_func_array() での名前空間の使用法

<?php

namespace Foobar
;

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

// PHP 5.3.0 以降
call_user_func_array(__NAMESPACE__ .'::Foo::test', array('Hannes'));
// Hello Hannes!

// PHP 5.3.0 以降
call_user_func_array(array(__NAMESPACE__ .'::Foo''test'), array('Philip'));
// Hello Philip!

?>

注意

注意: param_arr 内で参照される変数は、 関数に参照渡しされます。それ以外は値渡しとなります。 つまり、パラメータが値渡しとなるか参照渡しとなるのかは、 関数のシグネチャには依存しないということです。

参考


関数処理 関数
PHP Manual
[お役立ちリンク集]

NPO法人の設立(東京・大阪) 東京や大阪などNPO法人を設立する場合の注意点等を紹介

不動産・賃貸・マンション 不動産・賃貸・マンションに関する用語集です。

堺市の入院・内科

大阪の賃貸探し 大阪で賃貸を探している方は大阪ホームへ

東京の賃貸マンション 東京で賃貸を探すなら東京賃貸.orgへ