{category}

PHP - クロージャ

use

ゆーず(関数

意味 外部変数をクロージャに取り込む


useとは?

useキーワードは、PHPのクロージャ(無名関数)内で外部のスコープにある変数を使用するために利用します。これにより、関数が定義された環境の変数を関数内部で参照することができます。

useの具体的な使い方

クロージャでの外部変数の利用

$message = 'こんにちは';
$greet = function($name) use ($message) {
    return "$message、$name さん!";
};

echo $greet('田中');

👇出力結果

こんにちは、田中 さん!

この例では、外部で定義された $message 変数を use キーワードを使ってクロージャ内に取り込んでいます。これにより、クロージャ内で $message を使用して挨拶文を生成できます。

複数の変数の取り込み

$prefix = '商品名:';
$suffix = '円';

$formatPrice = function($item, $price) use ($prefix, $suffix) {
    return "$prefix$item - $price$suffix";
};

echo $formatPrice('りんご', 100);

👇出力結果

商品名:りんご - 100円

この例では、複数の外部変数($prefix と $suffix)を use キーワードを使ってクロージャに取り込んでいます。これにより、商品名と価格を指定のフォーマットで出力できます。

useに関するよくある質問

Q. useの目的は何ですか?
A. useキーワードの主な目的は、クロージャ(無名関数)内で外部のスコープにある変数を使用できるようにすることです。これにより、関数が定義された環境の変数を関数内部で参照することができます。
Q. useを使わないとどうなりますか?
A. useを使わずにクロージャ内で外部変数を参照しようとすると、その変数は未定義として扱われます。これは、PHPのスコープルールにより、クロージャは独自のスコープを持つためです。
Q. useで取り込んだ変数は変更できる?
A. デフォルトでは、useで取り込んだ変数は値渡しされるため、クロージャ内で変更しても外部の変数には影響しません。参照渡しにしたい場合は、use (&$variable) のように&を付けます。

useが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、PHPのuseやcall_user_func()、仮引数、...、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


PHPを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!PHPはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

call_user_func()

指定した関数を呼び出す

種類: コールバック

仮引数

関数定義時の引数

種類: 引数

...

任意の数の引数を受け取る

種類: 可変長引数

glob()

パターンに一致するファイル検索

種類: ディレクトリ操作

file_get_contents()

ファイルやURLの内容を取得

種類: HTTP リクエスト