変数を親のスコープから引き継ぐためには、PHP5.3から追加された無名関数を使用します。
無名関数の定義時に、use
を使用することで、親スコープの変数を関数内で使用することができるようになります。
例
<?php
$name = "山田太郎";
$foo = function($text) use ($name) {
echo $text.$name;
};
$foo("Hello, "); // 出力 -> Hello, 山田太郎
PHP7.0以降では、無名クラスが使用できるので、無名クラスのメンバ変数として値を共有させてもいいかもしれません。
コメント