ホームページ >バックエンド開発 >PHPチュートリアル >PHPの変数スコープについて簡単に紹介します。 。 。
最近 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
では絶対に書かないでください。