具体的には下記コードの例です。
引数が一つの twice($a)
をコールバック関数にするときちんと動きます。
でも、引数が2つのmultiplication($a, $b)
をコールバック関数にすると 引数の数が違うと怒られてしまいます。
引数が2つ以上のコールバック関数を使うスマートな解決法が何か有りますでしょうか?
`
function twice($a) {
return $a * 2;
}
function multiplication($a, $b) {
return $a * $b;
}
var_export(array_map('twice', array(1,2,3)));
// array (
// 0 => 2,
// 1 => 4,
// 2 => 6,
// )
var_export(array_map('multiplication', array(1,2,3)));
// Warning: Missing argument 2 for multiplication()
// ぐぬぬ。
// いい方法はないものか?
`
以下はベストアンサーを踏まえての追記です。
第二引数もなんとか動的に出来ないものかとコードをひねり出してみましたが、こんなん出ました。
`
$b = 3;
var_export(
array_map(function($a) use($b) {return multiplication($a, $b);}, array(1,2,3))
);
array (
0 => 3,
1 => 6,
2 => 9,
)
`

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/12 15:12