ホームページ >バックエンド開発 >PHPの問題 >PHPのグローバル配列とは何ですか

PHPのグローバル配列とは何ですか

青灯夜游
青灯夜游オリジナル
2022-05-17 15:42:302413ブラウズ

php グローバル配列は 9 つあります: 1. 「$GLOBALS」、すべての定義済みグローバル変数で構成される配列; 2. 「$_SERVER」、ヘッダー情報、パス、スクリプトの場所が含まれます。 3. "$_COOKIE"、セッション データで構成される配列、4. "$_GET"、5. "$_ENV" など。

PHPのグローバル配列とは何ですか

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

php グローバル配列

php グローバル配列の正式名称は「スーパーグローバル配列」または「スーパーグローバル変数」で、PHPで特別に定義された配列変数です。これらの配列はスクリプト内にあり、関数、クラス、ファイルなどの任意のスコープ内でどこからでもアクセスできます。

スーパーグローバル配列変数は、すべてのスコープで常に使用できる組み込み変数です。

PHP のスーパーグローバル配列には次の 9 個が含まれます:

  • $GLOBALS: 現在の各スクリプトのグローバル変数スコープへの参照が含まれます。内の変数。この配列のキー名はグローバル変数の名前です。

  • $_SERVER: サーバー関連情報の表示または取得;

  • $_GET: アドレス バーを介してサーバーにデータを渡します。メソッドは $_GET モードで渡される必要があります;

  • $_POST: フォームを通じて送信されるデータは POST モードである必要があります;

  • $ _REQUEST: 上記 2 つのデータ転送メソッド (POST と GET) が含まれます;

  • $_COOKIE: クライアントのセッション データを処理します;

  • $ _SESSION: サーバー側セッション データを処理します;

  • $_FILES: ファイルをアップロードするために必要な配列;

  • $_ENV: によって送信された変数実行環境からスクリプトへ

$_GET

    原則

  • PHPのグローバル配列とは何ですか
  • 使用法 1: ブラウザはハイパーリンクを通じてサーバーに情報を送信します (デフォルトは GET)

<meta>


//注意:信息如何传递!!!
<a>数据</a>

rree
    注: IE5.5 および IE6 では中国語の奇数が文字化けする問題がありますが、どうすれば解決できますか? URLコードとURLデコード。

<meta>


<?php echo "<pre class="brush:php;toolbar:false">";
 	echo print_r($_GET);
	echo "
"; echo $_GET['name']; ?>

<meta>


<?php $city=urlencode("大西安");
	echo "<a href=&#39;1.php?city={$city}&name=tan&#39;>数据";
?>

    使用 2: ブラウザはフォームを通じてサーバーに情報を送信します ($_POST を使用するのが最善です)

<meta>


<?php echo "<pre class="brush:php;toolbar:false">";
 	echo print_r($_GET);
	echo "
"; echo urldecode($_GET['city']); ?>

<meta>


输入内容:
    有効化を無効にするregister_globals: Set register_globals =off;
  • Enable register_globals. 次のコードにアクセスするときに http://localhost:88/1.php?a=10&b=20; と入力すると、10 20 が返されます。

<meta>




$_POST

    post を通じて送信されたデータは、$_POST スーパー グローバル配列にカプセル化されます。
  • 使用例 1: ブラウザはフォームを通じてサーバーに情報を送信します (一部のデータは post メソッドを使用する必要があります)

<meta>





<meta>


用户名:
密码:
性别:
籍贯:
爱好:唱歌 跳舞 LOL
个人简介:
文件上传:
  • POST メソッドの違いGET メソッド

      POST メソッドはセキュリティが優れています
    • #データ送信サイズ (POST メソッドが大きい)
    • #お気に入りに保存 (GET メソッド)
$_REQUEST

$_REQUEST は、$_POST、$_GET、$_COOKIE を含む配列です。配列構造は次のとおりです。 $_POST および $_GET と同じです。

つまり、データが POST または GET を使用して送信されたかどうかに関係なく、$_REQUEST を使用してデータを取得でき、$_REQUEST を使用して COOKIE 情報を取得することもできます。 request_order 属性は PHP5.3 で導入され、php.ini 設定ファイルの request_order 属性の値を変更することで、$_REQUEST に含まれるコンテンツを制御できます。

request_order 属性の値には、それぞれ GET、POST、COOKIE を表す 3 つの大文字の英語文字 G、P、C を指定できます。デフォルトでは、request_order 属性のデフォルト値は request_order="GP" であり、これには C が含まれていません。つまり、$_REQUEST に COOKIE 情報が含まれていないことを意味します。$_REQUEST に COOKIE を含めたい場合は、それを request_order に変更する必要があります。 =「GPC」。

注:

$_REQUEST は頻繁に使用しないでください (複数のメッセージが混在するため)。


<meta>


"; 
	//如何接收checkbox的所有数据(注意中括号[]):唱歌
	echo print_r($_POST);
	echo "
"; $hobbies=$_POST['hobby']; foreach($hobbies as $key=>$val){ echo "
".$key." ".$val; } ?> rrree$_SERVER['REQUEST_METHOD'] を介した GET と POST を区別する
    
    <meta>
    
    
    超链接
    
    用户名:
    密码:
  • $_SERVER

    $_SERVER は、ヘッダー情報、パス、スクリプトの場所などの情報を含む配列です。配列のエンティティは Web サーバーによって作成されますが、すべてのサーバーがすべての情報を生成できるという保証はありません。サーバーは一部の情報を無視したり、他の新しい情報を生成したりする可能性があります。他のスーパーグローバル配列と同様に、これはすべてのスクリプトで使用できる自動グローバル変数であり、関数やオブジェクト メソッドでアクセスするために global キーワードを使用する必要はありません。

    $_ENV

    获取服务器端的环境变量,通过修改php.ini的variables_order="EGPCS"启动。

    $_ENV数组中的内容是在PHP解析器运行时,从PHP所在服务器中的环境变量转变为PHP全局变量的。它们中许多都是由PHP所运行的系统决定的,完整的列表是不可能的,需要查看PHP所在服务器的系统文档以确定其特定的环境变量。

    $GLOBALS

    $GLOBALS是由所有已定义的全局变量组成的数组,变量名就是该数组的索引。

    • 包含了全部变量的全局组合数组。

    • 当定义一个全局变量,也会被$GLOBALS管理。
    
    <meta>
    
    
    ";
    	print_r($GLOBALS);
    	echo "
    "; ?>

    PHPのグローバル配列とは何ですか

    $_FILES

    使用表单的file输入域上传文件时,必须使用post提交。但在服务器文件中,并不能通过$_POST超全局数组获取到表单中file域的内容。而$_FILES超全局变量是通过post方法传递的已上传文件项目组成的数组。$_FILES是一个二维数组,包含5个子数组元素,其中第一个下标是表单中file输入域的名称,第二个下标用于描述上传文件的属性。

    $_COOKIE

    $_COOKIE超全局数组是经由HTTP Cookies方法提交至脚本的变量。通常这些Cookies是由以前执行的PHP脚本通过setCookies()函数设置到客户端浏览器中的,当PHP脚本从客户浏览器提取了一个cookie后,它将自动把它转换成一个变量,可以通过这个$_COOKIE超全局数组和cookie的名称来存取指定的cookie值。

    $_SESSION

    会话控制是在服务器端使用session跟踪用户,当服务器页面中使用session_start()函数开启session后,就可以使用$_SESSION数组注册全局变量,用户就可以在整个网站中访问这些会员信息。

    说明:$_COOKIE、$_SESSION、$_REQUEST的区别

    在 PHP 中,cookie 就是服务器,它是留在客户端(浏览器)上的一个小的数据文件,通常用于标识用户信息,也称为浏览器缓存或 Cookies。

    $_COOKIE[] 全局数组存储了通过 HTTP COOKIE 传递到脚本的信息,PHP 可通过 setcookie() 函数设置 COOKIE 的值,用 $_COOKIE[] 数组接收 COOKIE 的值,$_COOKIE[] 数组的索引为 COOKIE 的名称。

    session 是一种客户与网站(服务器)更为安全的对话方式,一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。但是 session 不同于 cookie,必须先启动,才能生效。

    $_SESSION[] 数组用于获取会话变量的相关信息。

    $_REQUEST 支持 $_GET 和 $_POST 发送过来的请求,即 get 和 post 它都可以接受,浏览器地址栏中的数据显示不显示要看传递的方法,get 会显示在 url 中(有字符限制),post 不会显示在 url 中,可以传递任意多的数据(只要服务器支持)。

    默认情况下,$_REQUEST[] 数组包含了 $_GET、$_POST 和 $_COOKIE 的数组。

    推荐学习:《PHP视频教程

    以上がPHPのグローバル配列とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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