[PHP]コールバック関数call_user_func_arrayで複数引数を使用する

書式
call_user_func_array(callable $callback, array $args): mixed
args にパラメータを指定して、 callback で指定したユーザー定義関数をコールします。

callback
コールするcallable。
args
コールバック関数に渡すパラメータを指定する配列。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
/*クラスCallArrの定義*/
class CallArr
{
public function getMsg($strA,$strB)
{
echo $strA." and ".$strB;
}
}
/*関数funcAの定義 引数がある*/
function funcA($arr,$name)
{
/*call_user_func_array関数を呼び出す*/
call_user_func_array($arr,$name);
}
/*オブジェクトcftの生成*/
$cft = new CallArr();
//配列1:オブジェクト名、関数名 配列2:引数1 引数2
funcA(array($cft, "getMsg"),array("AA01","BB02"));
?>
<?php /*クラスCallArrの定義*/ class CallArr { public function getMsg($strA,$strB) { echo $strA." and ".$strB; } } /*関数funcAの定義 引数がある*/ function funcA($arr,$name) { /*call_user_func_array関数を呼び出す*/ call_user_func_array($arr,$name); } /*オブジェクトcftの生成*/ $cft = new CallArr(); //配列1:オブジェクト名、関数名 配列2:引数1 引数2 funcA(array($cft, "getMsg"),array("AA01","BB02")); ?>
<?php

/*クラスCallArrの定義*/
class CallArr
{
    public function getMsg($strA,$strB)
    {
        echo $strA." and ".$strB;
    }
}
/*関数funcAの定義 引数がある*/
function funcA($arr,$name)
{
   /*call_user_func_array関数を呼び出す*/
    call_user_func_array($arr,$name);
}
/*オブジェクトcftの生成*/
$cft = new CallArr();
//配列1:オブジェクト名、関数名 配列2:引数1 引数2
funcA(array($cft, "getMsg"),array("AA01","BB02")); 
?>

結果
AA01 and BB02

PHP

Posted by arkgame