0
0

More than 3 years have passed since last update.

【PHP】無名関数内でスコープ内の変数を使いたい場合

Posted at

PHPを書いているときに、無名関数内で該当スコープで使用している変数を使用したいケースがあったので、まとめておきます。

ダメな例

下記のように記述するとNULLが出力されてしまいます。

$hoge = 1;
$hoge_func = function () {
    var_dump($hoge);
};
$hoge_func();
出力結果
NULL

これは、無名関数内のスコープでは、$hogeが定義されていないからです。

正しい例

無名関数のスコープ外で使用されている変数を使用したい場合には、下記のように書きます。

$hoge = 1;
$hoge_func = function () use($hoge) {
    var_dump($hoge);
};
$hoge_func();
出力結果
int(1)

まとめ

PHPだからよしなにやってくれるだろうと高を括らず(?)、きちんと使用する変数はuseで定義するようにしましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0