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

概念

超全局数组(变量), 在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>';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容