ホームページ >バックエンド開発 >PHPチュートリアル >PHPの変数スコープについて簡単に紹介します。 。 。

PHPの変数スコープについて簡単に紹介します。 。 。

WBOY
WBOYオリジナル
2016-08-20 09:04:01942ブラウズ

最近 php を書く必要があります。これまでに書いたことがなく、js しか知りません。 PHPの変数はJSのようなスコープチェーンでは参照されないようです。以下のコードがこのような場合、どのように実装すればよいでしょうか?

リーリー

調べてみたところ、Bのグローバル$numはグローバル変数$numを参照できるのですが、$numはグローバルではないようです。 。 。アドバイスをお願いします。

返信内容:

最近 php を書く必要があります。これまでに書いたことがなく、js しか知りません。 PHPの変数はJSのようなスコープチェーンでは参照されないようです。以下のコードがこのような場合、どのように実装すればよいでしょうか?

リーリー

調べてみたところ、Bのグローバル$numはグローバル変数$numを参照できるのですが、$numはグローバルではないようです。 。 。アドバイスをお願いします。

転送:
JavaScript は匿名関数で外部変数を直接使用できます。
PHP の匿名関数は、デフォルトではコード ブロックのコンテキスト変数を直接呼び出すことができません。クロージャ (匿名関数) と外部変数を接続するには use キーワードを使用する必要があります。

リーリー

ご覧のとおり、useキーワード内でdollarが宣言されておらず、この匿名関数では取得できませんので、開発時にはこの点に注意してください。

匿名関数でコンテキスト変数を変更できるのではないかと考える人もいるかもしれませんが、それは不可能であることがわかりました:

リーリー

use が参照しているのは変数の単なるコピーであることがわかります。

変数をコピーするのではなく完全に参照したい場合は、変数の前に & 記号を追加する必要があります:

リーリー

匿名関数が外部に返される場合、匿名関数は use で参照される変数を保存しますが、外部はこれらの変数を取得できません。このようにすると、「クロージャ」の概念がより明確になります。 リーリー

リーリー

上記の回答は単に質問に答えるためのものです。最初にマニュアルを読んで、PHP の基本的な構文を理解しておいたほうがよいでしょう。そうでない場合は、質問に遭遇した場合は、Q&A ウェブサイトで一度質問してください。これはあまりにも非効率です。 . php

では絶対に書かないでください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。