ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

phpで無名関数のuseを使い合わす場合は、参照渡しが必要

題名通りです。

無名関数のuseに渡す値を参照渡しにしないと、毎回値がリセットされてしまうようです。

例として、まわりくどいですが、配列の重複を削除する方法。

array_unique使えばええやんというツッコミはなしで

$target_array = [1, 2, 3, 4, 5, 2, 4];
$check_array = [];

$filterd_array = array_filter ($target_array, function($item) use (&$check_array) {

     if ( in_array($item, $check_array) ) {

           return false;

     }

     $check_array[] = $item;

     return true;
});
var_dump($filterd_array);

みたいな感じですかね。