目次
2. $_POST –> 事後送信方法
3. $_REQUEST –> は get メソッドと post メソッドの両方で値を受け取ることができます
4. $GLOBALS –> グローバル スコープで使用可能なすべての変数を参照します
5. $_FILES –> # を使用してファイルをアップロードします。
6. $_SERVER –> 系统环境变量
7. $_SESSION –> 用于会话控制
8. $_COOKIE –> 用于会话控制
9. $_ENV –> 服务器端环境变量
ホームページ バックエンド開発 PHPの問題 PHPのスーパーグローバル変数はいくつありますか?

PHPのスーパーグローバル変数はいくつありますか?

Jul 08, 2021 pm 05:04 PM
php 超大域変数

php スーパーグローバル変数は 9 つあります。つまり、「$GLOBALS」、「$_SERVER」、「$_GET」、「$_POST」、「$_FILES」、「$_COOKIE」、「$_SESSION」です。 ”、”$_REQUEST”、”$_ENV”。

PHPのスーパーグローバル変数はいくつありますか?

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

PHP の多くの事前定義変数は「」です。これは、スクリプトのスコープ全体で使用できることを意味します。 global $variable; を実行しなくても、関数またはメソッド内でアクセスできます。

これらのスーパーグローバル変数は次のとおりです:

  • $GLOBALS

  • $_SERVER

  • $_GET

  • $_POST

  • $_FILES

  • $_COOKIE

  • $_SESSION

  • $_REQUEST

  • $_ENV

1. $_GET –> 送信メソッドの取得

PHP $_GET は、HTML フォーム送信後のフォーム データの収集にも使用できます (method="get")。
$_GET は、URL で送信されたデータを収集することもできます。

例:

http://localhost/test_get.php?subject=PHP&web=W3school.com.cn
ログイン後にコピー

というURLリンクにアクセスします:

<html>
<body>
    <?php 
        echo "Study " . $_GET[&#39;subject&#39;] . " at " . $_GET[&#39;web&#39;];
    ?>
</body>
</html>
ログイン後にコピー

2. $_POST –> 事後送信方法

PHP $_POST は、method="post" を使用して HTML フォームを送信した後にフォーム データを収集するために広く使用されています。 $_POST は、変数を渡すためにもよく使用されます。

次の例は、入力フィールドと送信ボタンを含むフォームを示しています。ユーザーが送信ボタンをクリックしてデータを送信すると、

タグの action 属性で指定したファイルにフォームデータが送信されます。この例では、フォーム データを処理するファイル自体を指定します。別の PHP ページを使用してフォーム データを処理する場合は、ファイル名を任意のファイル名に変更します。次に、スーパー グローバル変数 $_POST を使用して入力フィールドの値を収集できます:

<html>
<body>
    <form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>">
        Name: <input type="text" name="fname">
        <input type="submit">
    </form>

    <?php 
        $name = $_POST[&#39;fname&#39;]; 
        echo $name; 
    ?>
</body>
</html>
ログイン後にコピー

3. $_REQUEST –> は get メソッドと post メソッドの両方で値を受け取ることができます

PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。

次の例は、入力フィールドと送信ボタンを含むフォームを示しています。ユーザーが送信ボタンをクリックしてフォームデータを送信すると、タグのaction属性に指定したスクリプトファイルにフォームデータが送信されます。この例では、フォーム データを処理するファイル自体を指定します。フォームデータを処理するために他の PHP ファイルを使用する必要がある場合は、ファイル名を任意のファイル名に変更してください。次に、スーパー グローバル変数 $_REQUEST を使用して、入力フィールドの値を収集します:

<html>
<body>
    <form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>">
        Name: <input type="text" name="fname">
        <input type="submit">
    </form>

    <?php 
        $name = $_REQUEST[&#39;fname&#39;]; 
        echo $name; 
    ?>
</body>
</html>
ログイン後にコピー

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

  • $GLOBALS このタイプのグローバル変数は、PHP スクリプト内のどこからでも (関数またはメソッドから) グローバル変数にアクセスするために使用されます。
  • PHP は、すべてのグローバル変数を $GLOBALS[index] という名前の配列に保存します。変数の名前は配列のキーです。
  • 主にローカル スコープではグローバル変数を使用できないが、グローバル変数を使用する必要がある場合に使用されます。$GLOBALS を使用します。

次の例は、スーパー グローバル変数 $GLOBALS の使用方法を示しています:

<?php 
    $x = 75; 
    $y = 25;

    function addition() { 
      $GLOBALS[&#39;z&#39;] = $GLOBALS[&#39;x&#39;] + $GLOBALS[&#39;y&#39;]; 
    }

    addition(); 
    echo $z; 
?>
ログイン後にコピー

5. $_FILES –> # を使用してファイルをアップロードします。

    ##$_FILES は、主にバイナリ ファイルをアップロードする必要がある場合に使用されます。abc.mp3 ファイルをアップロードするには、サーバーはファイルに関する関連情報を取得する必要があります。この情報は、変数を通じて取得されます。 $_FILES。
  • $_FILES スーパー グローバル変数には、POST メソッドを通じてサーバーにアップロードされたデータに関する情報が含まれています。このスーパーグローバル変数は他の変数とは異なり、5つの要素を含む2次元配列です。
#要素/コード$ _FILES['userfile']['name']$_FILES['userfile']['type']##$_FILES['userfile']['size' ]アップロードされたファイルのサイズ (バイト単位)$_FILES['userfile']['tmp_name']ファイルがアップロードされた後アップロードすると提供されます 最後に保存される一時ファイルの名前 $_FILES['userfile']['error'] とエラー コードファイルのアップロードに関連します。 [‘error’] は PHP バージョン 4.2.0 で追加されました。この変数の名前は error ですが、この変数は実際には成功時に値が入力されます。可能な値は 5 つあります。表の下の注記 ③# を参照してください。

注:
① 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。
② 如果表单中没有选择上传的文件,则 PHP 变量 $_FILES[‘userfile’][‘size’] 的值将为 0,$_FILES[‘userfile’][‘tmp_name’] 将为 none。
③ error字段5个错误码:

  • UPLOAD_ERR_OK 文件成功上传
  • UPLOAD_ERR_INI_SIZE 文件大小超出了
  • MAX_FILE_SIZE 指令所指定的最大值。
  • UPLOAD_ERR_FORM_SIZE 文件大小超出了MAX_FILE_SIZE 隐藏表单域参数(可选)指定的最大值。
  • UPLOAD_ERR_PARTIAL 文件只上传了一部分UPLOAD_ERR_NO_FILE 上传表单中没有指定文件

前端上传文件示例代码:

/**创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:**/
<html>
<body>
    <form action="upload_file.php" method="post" enctype="multipart/form-data">
        <label for="file">Filename:</label>
        <input type="file" name="file" id="file" /> 
        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>
ログイン後にコピー

后端处理文件示例代码:

<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>
ログイン後にコピー

6. $_SERVER –> 系统环境变量

$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。

下面的例子展示了如何使用 $_SERVER 中的某些元素:

<?php 
    echo $_SERVER[&#39;PHP_SELF&#39;];
    echo "<br>";
    echo $_SERVER[&#39;SERVER_NAME&#39;];
    echo "<br>";
    echo $_SERVER[&#39;HTTP_HOST&#39;];
    echo "<br>";
    echo $_SERVER[&#39;HTTP_REFERER&#39;];
    echo "<br>";
    echo $_SERVER[&#39;HTTP_USER_AGENT&#39;];
    echo "<br>";
    echo $_SERVER[&#39;SCRIPT_NAME&#39;];
?>
ログイン後にコピー

常用的字段:

説明
クライアント マシン ファイルの元の名前
ファイルの MIME タイプでは、ブラウザが「image/gif」などのこの情報をサポートする必要があります
元素/代码描述
$_SERVER[‘PHP_SELF’]返回当前执行脚本的文件名。
$_SERVER[‘GATEWAY_INTERFACE’]返回服务器使用的 CGI 规范的版本。
$_SERVER[‘SERVER_ADDR’]返回当前运行脚本所在的服务器的 IP 地址。
$_SERVER[‘SERVER_NAME’]返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。
$_SERVER[‘SERVER_SOFTWARE’]返回服务器标识字符串(比如 Apache/2.2.24)。
$_SERVER[‘SERVER_PROTOCOL’]返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。
$_SERVER[‘REQUEST_METHOD’]返回访问页面使用的请求方法(例如 POST)。
$_SERVER[‘REQUEST_TIME’]返回请求开始时的时间戳(例如 1577687494)。
$_SERVER[‘QUERY_STRING’]返回查询字符串,如果是通过查询字符串访问此页面。
$_SERVER[‘HTTP_ACCEPT’]返回来自当前请求的请求头。
$_SERVER[‘HTTP_ACCEPT_CHARSET’]返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1)
$_SERVER[‘HTTP_HOST’]返回来自当前请求的 Host 头。
$_SERVER[‘HTTP_REFERER’]返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。
$_SERVER[‘HTTPS’]是否通过安全 HTTP 协议查询脚本。
$_SERVER[‘REMOTE_ADDR’]返回浏览当前页面的用户的 IP 地址。
$_SERVER[‘REMOTE_HOST’]返回浏览当前页面的用户的主机名。
$_SERVER[‘REMOTE_PORT’]返回用户机器上连接到 Web 服务器所使用的端口号。
$_SERVER[‘SCRIPT_FILENAME’]返回当前执行脚本的绝对路径。
$_SERVER[‘SERVER_ADMIN’]该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。
$_SERVER[‘SERVER_PORT’]Web 服务器使用的端口。默认值为 “80”。
$_SERVER[‘SERVER_SIGNATURE’]返回服务器版本和虚拟主机名。
$_SERVER[‘PATH_TRANSLATED’]当前脚本所在文件系统(非文档根目录)的基本路径。
$_SERVER[‘SCRIPT_NAME’]返回当前脚本的路径。
$_SERVER[‘SCRIPT_URI’]返回当前页面的 URI。

7. $_SESSION –> 用于会话控制

PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

  • 当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
  • 通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
  • Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

①开始 PHP Session :
在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
注释:session_start() 函数必须位于 标签之前

<?php session_start(); ?>

<html>
<body>

</body>
</html>
ログイン後にコピー

②存储 和使用Session 变量:

<?php
session_start();
// store session data
$_SESSION[&#39;views&#39;]=1;
?>

<html>
<body>

<?php
//retrieve session data
echo "Pageviews=". $_SESSION[&#39;views&#39;];
?>

</body>
</html>
ログイン後にコピー

③终结 Session
如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

//通过 unset() 函数用于释放指定的 session 变量:
<?php
unset($_SESSION[&#39;views&#39;]);
?>

//通过 session_destroy() 函数彻底终结 session:
<?php
session_destroy();
?>
ログイン後にコピー

注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

①创建 Cookie

//语法
setcookie(name, value, expire, path, domain);

//示例
<?php 
setcookie("user", "Alex Porter", time()+3600);
//创建名为 "user" 的 cookie,把为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期
?>

<html>
<body>

</body>
</html>
ログイン後にコピー

②取回 Cookie 值

//示例a:取回了名为 "user" 的 cookie 的值,并把它显示在了页面上
<?php
// Print a cookie
echo $_COOKIE["user"];

// A way to view all cookies
print_r($_COOKIE);
?>

//示例b:使用 isset() 函数来确认是否已设置了 cookie
<html>
<body>

<?php
if (isset($_COOKIE["user"]))
  echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
  echo "Welcome guest!<br />";
?>

</body>
</html>
ログイン後にコピー

9. $_ENV –> 服务器端环境变量

PHP中的$_ENV是一个包含服务器端环境变量的数组,不同系统不完全一样。
部分变量示例:
$_ENV[ ‘HOSTNAME’ ] 服务器的主机名
$_ENV[ ‘SHELL’ ] 系统 shell

$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它:

//输出内容格式清晰,ThinkPHP可以直接用dump()
var_dump($_ENV);

//输出到屏幕
print_r($_ENV);

//输出key-value键值对
foreach($_ENV as $key=>$val){echo $key.&#39;--------&#39;.$val.&#39;<br>&#39;;}
ログイン後にコピー

推荐学习:《PHP视频教程

以上がPHPのスーパーグローバル変数はいくつありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles