• 6)PHP,预定义变量


    预定义变量也叫超全局变量:

    1 1:预定义变量又叫超全局变量,包括:
    2 $_GET, $_POST, $_SERVER, $_REQUEST, $GLOBALS, $_COOKIE, $_SESSION, ..........(大约10个) 3 2:作用域问题
    4 php中,自定义的变量的作用域,分两种:全局作用域(函数外),局部作用域(函数内)。 5 但:
    6 预定义变量的作用域称为“超全局作用域”:全局作用域 + 局部作用域的总和(函数内外全都可用) 7 3:数据类型问题:
    8 超全局变量都是数组!

    (1)$_GET变量(数组)

        

          get这个词,常常出现在这里:<form  action=”abc.php”  method=”get” >.....</form>

         这叫做“表单以get方式提交数据”

         则$_GET这个预定义数组变量,就是指以这种方式提交的所有数据的集合(数组)

         对应来说,也可以以post方式提交数据

         注意:get这个词,似乎没有中文翻译。

     实际上,在网页中,以get方式提交数据有多种形式:

    1 形式一:
    2 <form  action=”abc.php”  method=”get” >
    3 项目1: <input type=”text”   name=”uName”   />
    4 项目2: <input type=”password”   name=”uPswd”   />
    5 <input type=”submit”  value=”提交”  />
    6 </form>
    7 其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php) 

    *********************************************************************************************************************************

    1 形式二:
    2 <a  href=”abc.php?uName=test1&uPswd=123”  > 文字。。。</a>
    3 其作用是:用户点击链接后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

    **********************************************************************************************************************************

    1 形式三:
    2 <script>
    3 location.href = “abc.php?uName=test1&uPswd=123”;        //利用location对象的属性href
    4 </script>
    5 其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

    ***********************************************************************************************************************************

    1 形式四:
    2 <script>
    3 location.assign( “abc.php?uName=test1&uPswd=123”);    //利用location对象的方法assign()
    4 </script>
    5 其作用是:当该行语句执行的时候(通常其实是在函数中),会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php),这种请求也是get请求

    (2)$_POST变量(数组)

          类似$_GET变量(数组),$_POST代表页面通过post方式提交过来的数据所形成的数组。

          post提交数据,通常只有一种形式:

    1 <form  action=”abc.php”  method=”post” >
    2 
    3 项目1: <input type=”text”   name=”uName”   />
    4 
    5 项目2: <input type=”password”   name=”uPswd”   />
    6 
    7 <input type=”submit”  value=”提交”  />                 
    8 
    9 </form>

          其作用是:用户填写表单数据,并提交后,会将数据发送(提交)给页面abc.php,其实也可以理解为“打开”该网页(abc.php),还可以理解为“请求”该网页(abc.php)

    1 接收post数据的形式为:
    2 
    3 (在abc.php网页中)
    4 
    5 <?php
    6 
    7 $v1 = $_POST[‘uName’];     //单引号也可以用双引号,本质是一个字符串,其实是数组的键名(下标)
    8 
    9 $v2 = $_POST[‘uPswd’];      //该键名必须跟提交的时候的名字完全一致(区分大小写)
    1 也可以显示所有post数据:
    2 
    3 var_dump($_POST)
    4 
    5 ?>

    通常,网页中的form表单,一般都用post方式,get方式主要体现在其他3种形式。

     

    (3)$_REQUEST变量(数组)

        $_REQUEST数组,其实并不是一个独立的数据来源,而是$_POST数据和$_GET数据的“总和”

    即$_REQUEST数组中包括了所有$_POST数据和$_GET数据——其实是由系统内部自动存储的。

    通常,$_POST数据和$_GET数据不会“同时出现”,$_REQUEST数组就代表了其中之一。

          

     1 下面来看看:get和post数据同时提交的情形:
     2 此时,一般就只有一种html语法形式会出现该情形,如下:
     3 <form  action="abc.php?a=5&b=10"  method="POST" > ...
     4 项目1: <input type=”text”   name=”uName”   />
     5 项目2: <input type=”password”   name=”uPswd”   />
     6 <input type=”submit”  value=”提交”  />
     7 </form>
     8 则此时,uName和uPswd两个数据以post方式提交给abc.php,
     9 并,同时:a=5和b=10两个数据,以get方式提交给abc.php
     10 则在页面abc.php中:
    11 这样取得get数据:
    12 $v1 = $_GET[‘a’];
    13 $v2 = $_GET[‘b’]; 

    这样取得post数据:

    $v3 = $_POST[‘uName’];

    $v4 = $_POST[‘uPswd’];

    但,也可以这样取(全有了):

    $v1 = $_REQUEST[‘a’];

    $v2 = $_REQUEST[‘b’];

    $v3 = $_REQUEST[‘uName’]

    $v4 = $_REQUEST[‘uPswd’]

    当get数据和post数据同时提交并其中有重名的时候,情况怎么样呢?

    说明:

        1,尽量避免重名;

        2,如果重名了,此时$_REQUEST只会记录(存储)其中一个数据(要么post数据,要么get数据)

        3,至于记录的是哪个,是有php.ini中的一个设置项来决定:

        3.1  request_order = “GP”;  //这是默认值,G代表GET,P代表POST

        3.2  含义是:先存储GET数据,再存储POST

        3.3  可见如果重名,此时POST就会覆盖GET数据

        3.4  改为:request_order = “PG”, 顺序反过来

     

    然后去php.ini中,修改为:request_order = “PG”

    同样的数据,结果却为:

    • $_GET, $_POST, $_REQUEST三种数据是相互独立的。

    (4)$_SERVER变量(数组)

        

     1 该变量存储了服务器端或客户端的一些请求信息或设置信息,比较多,而且不同的服务器和不同的请求页面,其数据项都可能不同。
     2 •    常用的有:
     3 o    REMOTE_ADDR, 用户的IP地址
     4 o    SERVER_ADDR:  服务器端的IP地址
     5 o    SERVER_NAME:  服务器名(主机名)
     6 o    DOCUMENT_ROOT:  站点绝对路径(其实就是主机设置中的DocumentRoot
     7 o    PHP_SELF:当前网页的文件路径
     8 o    QUERY_STRING: 表示一个get请求的整体字符串,类似这样:
     9     http://www.abc.com/abc.php?a=5&b=10连接地址中的“a=5&b=10” 
    10 •    输出所有项(可能每台服务器有所差异)

    (5)$GLOBALS变量(数组)

    似乎是一个多余的变量:它只是把我们自己定义的所有全局变量存储到该数组中:

    变量名就是该数组的下标(键名),变量值就是对应的值。

  • 相关阅读:
    [leetcode]687. Longest Univalue Path
    [leetcode]543. Diameter of Binary Tree二叉树的直径
    [LeetCode]Subtree of Another Tree判断一棵树是不是另一棵树的子树
    [leetcode]508. Most Frequent Subtree Sum二叉树中出现最多的值
    [leetcode]450. Delete Node in a BST二叉搜索树删除节点
    [LeetCode]652. Find Duplicate Subtrees找到重复树
    MySQL 数据库
    javaScript
    Css 笔记
    Html 笔记
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/7306812.html
Copyright © 2020-2023  润新知