美文网首页
超全局数组(预定义变量)

超全局数组(预定义变量)

作者: 刘宇龙 | 来源:发表于2016-09-16 13:51 被阅读0次

概念

超全局数组(变量), 在PHP的脚本中, 已经声明完的变量, 你可以直接就去使用即可! 变量的名子已经规定好的了
$_SERVER
$_ENV
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$GLOBALS

1.数组(关联数组), 就和你自己声明的数组是一样的操作方式

2.全局

3.每个预定义的数组都有自独特的能力

<?php
// echo count($_SERVER);
//
// foreach($_SERVER as $key=>$value){
//   echo "{$key}=>{$value}<br>";
// }

// $arr=array("龙哥","小弟");
// function demo(){
//     global $arr;
//     echo $arr[0]."和".$arr[1];
// }
// demo();
$_GET=array("龙哥","小弟");
function demo(){
    echo $_GET[0]."和".$_GET[1];
    $_GET['username']="admin";
}
demo();
print_r($_GET);

服务器变量$_SERVER和环境变量$_ENV

function getip() {

        if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
            return $_SERVER['HTTP_CLIENT_IP'];
        } elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            return $_SERVER['HTTP_X_FORWARDED_FOR'];
        } else if(!empty($_SERVER['REMOTE_ADDR'])) {

            return $_SERVER['REMOTE_ADDR'];
        }else{
            return '未知IP';
        }
    }

    echo getip();

    echo '<br>';

    echo $_SERVER['HTTP_USER_AGENT'];

    echo '<br>';

    echo count($_SERVER);
    echo "<br>";
    echo '<pre>';
    print_r($_SERVER);
    echo '</pre>';

$_GET、$_POST、$_REQUEST

1.$_GET 接收用户通过URL向服务器传的参数 get传输有地址栏大小限制,且不安全,可以在地址栏看到所传参数

2.$_POST接收用户通过http协议向服务器传的参数 http post传输,大下限制由php配置限制,可以修改,但是不能超过服务器内存大小,地址栏看不到所传参数相对安全,

3.$_REQUEST

$_GET

//可以以数组传值
<a href="demo.php?action[]=add&action[]=mod&id=5&name=admin">测试页面</a>
print_r($_GET);
//或者可以输出单值
echo $_GET['id'];

$_POST

//可以以数组传值
<form action="demo.php?age=www&dd=yy" method="post">
    username: <input type="text" name="name[one]" /><br>
    username: <input type="text" name="name[two]" /><br>
    username: <input type="text" name="name[three]" /><br>
    age: <input type="text" name="age" /> <br>
    sex: <input type="text" name="sex" /> <br>

    <input type="submit"  name ="sub" value="提交">
</form>

$_REQUEST

$_REQUEST可以全部接受所传参数,功能比$_GET、$_POST强大,但是如果出现两个同名的,后一个会将前一个覆盖。而且漏洞相对较大,黑客容易攻击。

//是用empty判断是否存在
$arr = !empty($_POST) ? $_POST : $_GET;

//不要使用全局变量$_GET,$_POST做函数形参。
//function demo($_GET,$_POST){

//}

$_FILES

通过HTTP POST 方法传递的已上传文件项目组成的数组。是自动全局变量。

$_COOKIE、$_SESSION

setCookie("name","龙哥",time()+3600,"/");
print_r($_COOKIE);

session_start();
$_SESSION['name']="hello";
print_r($_SESSION);

echo '<pre>';
print_r($GLOBALS);
echo '</pre>';

相关文章

  • 6.4.1 PHP超全局数组(预定义变量)概述无标题文章

    6.4.1 PHP超全局数组(预定义变量)概述 超全局数组(预定义变量) • 服务器变量: $_SERVER...

  • PHP 学习笔记四 超全局变量数组

    1.超全局变量数组 2.超全局变量数组 $_POST 的使用 3.超全局变量数组 $_GET 的使用 3.超全局变...

  • php变量类型

    变量类型: 局部变量 全局变量 静态变量 超全局变量 : php预定义了一些变量在脚本任何作用域内均可访问 超全局...

  • 超全局数组(预定义变量)

    概念 超全局数组(变量), 在PHP的脚本中, 已经声明完的变量, 你可以直接就去使用即可! 变量的名子已经规定好...

  • php预定义超全局变量、超全局数组

    一、超全局变量:除了有全局变量的特点外,可以无须声明,直接使用。全局变量: 超全局变量: 二、php提供了九种超全...

  • 文件上传

    与文件上传相关的一些php.ini配置 预定义变量$_FILES 超全局变量$FILES,次数组包含有所以上传的文...

  • 2020-05-28 vue-admin-ui总结

    作用域:var在函数里定义的才是局部变量。直接使用变量不声明则是隐式全局变量,函数里也是全局的预解析:变量声明提升...

  • PHP 的 $_SERVER详解

    导语 $_SERVER是PHP预定义的超全局变量。所谓“超全局变量”,即在脚本全部作用域中都可以使用,$_SERV...

  • PHP $GLOBALS 与 global

    $GLOBALS它也是一个数组,其中存储了我们自己定义的所有全局变量。每个全局变量的变量名,就是$GLOBALS数...

  • PHP 全局变量 - 超全局变量

    超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。PHP 中的许多预定义变量都是“超...

网友评论

      本文标题:超全局数组(预定义变量)

      本文链接:https://www.haomeiwen.com/subject/yhovettx.html