JavaScriptの即時実行と似た処理をcall_user_funcを使いPHPで実行するメモ

Pocket

PHPとJavaScriptのメモです。

JavaScript

[100,150,200].forEach(function(total, tax) {
    return function(currentValue, index, $array) {
         total += currentValue * tax;
         console.log(total);
    }
}(0, 1.08));

// 108
// 270
// 486

PHP

<?php
$result = array_map(
    call_user_func(
        function ($total, $tax) {
            return function ($x) use (&$total, $tax) {
                $total += $x * $tax;
                return $total;
            };
        },
        0, 1.08
    ),
    [100, 150, 200]
);
var_dump($result);

array (size=3)
  0 => float 108
  1 => float 270
  2 => float 486

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。