ホームページ  >  記事  >  バックエンド開発  >  PHP グローバル変数とスーパー グローバル変数の違いの分析 PHP 定義変数 PHP 環境変数 PHP 変数関数

PHP グローバル変数とスーパー グローバル変数の違いの分析 PHP 定義変数 PHP 環境変数 PHP 変数関数

WBOY
WBOYオリジナル
2016-07-29 08:54:461098ブラウズ

この記事では、PHP グローバル変数とスーパー グローバル変数の違いを分析します。参考のために皆さんと共有してください。詳細は次のとおりです:

グローバル変数は、関数の外で定義された変数です。関数内で直接使用することはできません。そのスコープが関数内に入らないからです。したがって、関数内で使用すると、global $a;

スーパー グローバル変数のスコープはすべてのスクリプトで有効です。したがって、この機能をそのまま使用することができます。たとえば、$_GET と $_SERVER はスーパー グローバル変数です。 $_GET、$_POST、$_SERVER、$_COOKIE など以外のスーパーグローバル変数は、$GLOBALS 配列に格納されます。 注意: 間違って $_GLOBALS と書かないでください。 $_POST の影響を少し受けます。

$GLOBAL は特別な php カスタム配列です。スーパーグローバル変数。 $_SERVER と同様、これらはすべてスーパーグローバル変数です。

スーパーグローバル変数の詳細な説明と使用法を見つけるには、マニュアルで $GLOBALS を検索してください

変数名は配列のインデックスです。 説明: $GLOBALS['a'] を使用してスーパーグローバル変数を定義した後。 $a を使用して直接アクセスできます

これについてはマニュアルで説明されています:

$GLOBALS — グローバル スコープで使用可能なすべての変数を参照します グローバル スコープで使用可能なすべての変数を参照します

例で理解します: 関数の外部で定義されている場合変数 $a。その後、$GLOBALS['a'] を使用して、関数内でこの変数の値を取得できます。したがって、$GLOBALS 配列内には、すべてのユーザー定義のグローバル変数が含まれます。

スーパーグローバル変数と呼ばれる理由。 $_POST と比較して、関数内で直接使用できます。 global ステートメントを使用する必要はまったくありません。したがって、$GLOBALS も同じ原理ですが、$_POST が post メソッドで渡された変数を保存する点が異なります。 $GLOBALS には、ユーザー定義のグローバル変数が保存されます。

個人的な理解:

スーパー グローバル変数に対するこれまでの理解は間違っていました。スーパー グローバル変数はすべてのスクリプトで有効です。この記述により、理解に微妙なズレが生じました。すべてのスクリプトで有効な場合、$GLOBALS で保存されたスーパー グローバル変数は、1 つの PHP ファイルで定義された後、別のファイルで取得できるというのは本当ですか。

もちろんそうではありません。誰でもアクセスできるように見えるため、おそらく $_POST の影響を受けています。現在処理されている $_POST データにしかアクセスできないとは知りませんでした。 phpファイルから取得した投稿データの見分け方 二人同時にメッセージを投稿することはできません。このデータは現在のスレッドにのみ属することができます。最後に、スーパー グローバル変数はグローバル変数に対して相対的なものであるため、このように見ることができます。グローバル変数の 1 つ上のレベルであるグローバル変数は関数内で使用できません。問題は解決します。他の言語では、グローバル変数を関数内で使用できます。これは、PHP 言語設計には当てはまりません。

グローバル変数は関数内で直接使用されるため、直接使用できる変数を提供する必要があります。ここでスーパーグローバル変数の概念が登場します。

さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピックをチェックしてください:「PHP の操作とオペレーターの使用法の概要」、「PHP ネットワーク プログラミング スキルの概要」、「PHP 基本構文チュートリアルの紹介」、 『php操作オフィス文書スキル』まとめ(word、excel、access、ppt含む)』、『php日時の使い方まとめ』、『phpオブジェクト指向プログラミング入門講座』、『php string(文字列)の使い方まとめ』、『 php+mysqlデータベース操作入門『チュートリアル』と『PHPにおける共通データベース操作スキルまとめ』

この記事がPHPプログラミングの皆様のお役に立てれば幸いです。

以上、PHPのグローバル変数とスーパーグローバル変数の違いを、グローバル変数やPHPの内容も含めて分析しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

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