ホームページ  >  記事  >  バックエンド開発  >  PHPの関数と変数スコープの詳細な説明

PHPの関数と変数スコープの詳細な説明

WBOY
WBOYオリジナル
2016-07-25 08:59:08952ブラウズ
  1. function &func(){
  2. return "";
  3. }
コードをコピー

2.呼び出すときは、関数の前に参照記号を追加します。

  1. $return = &func();
コードをコピー

PHPにはスコープが2つしかありません 1. 関数の外側、グローバル スコープ。 2. 関数内、ローカルスコープ。

ルール: スコープは重複しません。 (グローバルはローカルにアクセスできず、ローカルはグローバルにアクセスできません) しかし、jsは重複しています。

特別: 事前定義された変数 (9 個のスーパー グローバル配列変数) -- これらは配列変数であることに注意してください。 スーパーグローバル: スーパーグローバル: グローバルまたはローカルで使用できます。すべてのスコープが有効です。

  1. $_GET['v1'] = "123";
  2. echo $_GET['v1']
コードをコピー

$GLOBALS スーパー グローバル変数は、スーパー グローバル変数を保存するために特別に使用されます。アンダースコアがないことに注意してください。

グローバル変数を変更すると、GLOBALS 内の要素の値に影響します;

理由: データスペースが使用されています。 同等:

  1. $GLOBALS[‘v8’] = &$v8;
コードをコピー

2. 関数を作成する別の方法。

  1. $func = create_function('$p',"echo $p);
コードをコピー

var_dump($func); 関数名を返します。 この関数で作成される関数名はラムダ形式です。そして、関数名の前に目に見えない文字があります。 Ascii 0 を含む非表示文字。 と呼ぶこともできる。 $result = "x0"."lamba8"(20); 関数を呼び出す前に関数名を知っておく必要があることに注意してください。

最も一般的に使用される場所はコールバック関数内に表示されます。 したがって、create_function によって作成される関数は通常の関数と変わりません (関数には 3 つの部分があります)。

ただし、この関数は設定前に呼び出すことができないため、create_functionを実行することでのみ関数を取得できます。 最もよく使用される場所: コールバック パラメータのパラメータ create_function コールバック構造体の入力パラメータと同等です。

匿名関数: 匿名関数によって作成された関数には名前はありませんが、オブジェクトがあります。 create_function との違い:

匿名関数とは正確には何ですか? 1.匿名関数を値として扱う(PHPではオブジェクト型) 2. Php は、クロージャー クラスを通じて匿名関数関数を実装します。各匿名関数は Closure クラスのオブジェクトです。クロージャーという言葉は閉鎖を意味します。したがって、PHP は匿名関数のクロージャー関数も呼び出すことがあります。 3. オブジェクトを関数として呼び出すことができるのはなぜですか? (おっと)

外部スコープで変数の構文を使用できます。 知らせ: アウターレイヤーとグローバルレイヤーの違い。外層はグローバルまたはローカルの場合があります。現在の匿名関数が定義されている場所を確認します。

使用構文のデフォルトは値渡しですが、参照渡しも可能です。 折り返し電話 1. 機能名 2.関数の作成 3. 匿名関数


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