関数仕様編 その14 (匿名関数と無名関数 その4)』

Human Resocia Co.,Ltd.

2015-09-16 09:00

ヒューマンリソシア株式会社はコラム「関数仕様編 その14 (匿名関数と無名関数 その4)」を公開しました。
###

今回は、無名関数の「匿名関数にはない」部分について見ていきたいと思います。

言い方を変えると「コールバックとしての無名関数、ではなくて、
レキシカルスコープをもつクロージャとしての無名関数」を見ていきます、って書き方になりましょうか。

さて、というわけで「レキシカルスコープ」です。
レキシカル(lexical)ですが、これには「語彙」とか「語句」、「字句」とかいう意味合いがあります。
コンパイラの世界では「字句解析器」という初手の処理があって、これが「lexical analyzer」とか呼ばれますが、
ここに、レキシカル、という単語が入ってきます。

端的には「実行時ではなく、プログラムを文法的に解釈していくタイミングで見て取れる」スコープ、というような感じですね。
少し、実際の使い方こみで、見ていきましょう。

まずは「エラーになる(というか$aが解決できない)」例です。

function hoge() {
//
$a = 100;
//
$func = function() {
var_dump($a);
};
//
$func();
}
//
hoge();

これだとNULLが返ってきます。$aは「親のスコープ内」ではあっても、
無名関数のスコープ内ではないためです(この辺、JavaScriptなどのスコープチェーンとは異なる動きですね)。
無名関数内で「親のスコープの変数を使う」場合、以下のように、明示的に「使うよ~」って宣言します。宣言には、use句を用います。

function hoge() {
//
$a = 100;
//
$func = function() use($a) {
var_dump($a);
};
//
$func();
}
//
hoge();

この続きは以下をご覧ください
(リンク »)
本プレスリリースは発表元企業よりご投稿いただいた情報を掲載しております。
お問い合わせにつきましては発表元企業までお願いいたします。

【企業の皆様へ】企業情報を掲載・登録するには?

御社の企業情報・プレスリリース・イベント情報・製品情報などを登録するには、企業情報センターサービスへのお申し込みをいただく必要がございます。詳しくは以下のページをご覧ください。

ホワイトペーパー

新着

ランキング

  1. ビジネスアプリケーション

    ITR調査結果から導くDX浸透・定着化-“9割の国内企業がDX推進中も成果が出ているのはごく一部”

  2. セキュリティ

    最新調査が示すセキュリティ対策の「盲点」とは?|ゼロトラスト、生成AI、サプライチェーンリスクの実態

  3. セキュリティ

    セキュアな業務環境を実現する新標準「Chrome Enterprise Premium」活用ガイド

  4. セキュリティ

    失敗しない「脱PPAP」とは?主要ソリューション5つを徹底比較してわかった勘所

  5. ビジネスアプリケーション

    調査結果が示す「生成 AI 」活用によるソフトウェア開発の現状、ツール選定のポイントも解説

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]