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

一、超全局变量:
除了有全局变量的特点外,可以无须声明,直接使用。
全局变量:

//全局变量
$a = 23;
function test() {
    global $a;//使用到全局$a
    $a = 12;
}
test();
echo $a."<br/>";

超全局变量:

//超全局变量
echo "<pre>";
echo print_r($_SERVER);
echo "</pre>";

二、php提供了九种超全局数组的,可以更方便快捷的写出程序:
1、$_GET:
通过URL参数传递给当前脚本的变量的数组。
基本用法:
(1)客户机(浏览器)通过超链接传送信息给服务器;(默认get)
(2)客户机(浏览器)通过表单传递信息给服务器-->推荐表单数据使用POST提交。

超链接页面:

<?php

    //对中文url编码
    $str = urlencode("长沙你好");
    echo "<a href='GET.php?city=".$str."&name=lizzy'>传送数据</a>";
?>

GET页面正常接收数据:

 <?php

    echo "<pre>";
    echo print_r($_GET);
    echo "</pre>";

    echo "--".$_GET['city'];
?>

_GET也可以接收表单以get方式提交数据。
使用细节:
(1)判断是否收到值:

if (empty($_GET['city'])) {
    echo "没有收到city";
} else {
    echo "有city:".$_GET['city'];
}

(2)$_GET使用陷阱,绝对不能启用php.ini文件中的register_globals = off 需要关闭,否则小心sql注入。

2、$_POST:
通过http post方式提交的数据,会被封装到$_POST 超全局数组中。有些数据传输必须post,比如传文件。。。(表单建议post安全)
界面代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
</head>

<h1>用户注册</h1>
<form action="POST.php" method="post">  
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="text" name="password"/><br/>
    性别:<input type="radio" name="sex" value="female" /> 女 <input type="radio" name="sex" value="man"/> 男<br/>
    你的爱好:
    <input type="checkbox" name="hobby[]" value="唱歌">唱歌
    <input type="checkbox" name="hobby[]" value="跳舞">跳舞
    <input type="checkbox" name="hobby[]" value="游泳">游泳
    <input type="checkbox" name="hobby[]" value="健身">健身<br/>
    你的所在地:
    <select name="city">
        <option value="changsha">长沙</option>
        <option value="beijing">北京</option>
        <option value="shenzhen">深圳</option>
    </select><br/>
    个人介绍:
    <textarea rows="10" name="introduce" cols="30">
    </textarea><br/>
    选择图片:
    <input type="file" name="myphoto"><br/>

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

接收数据代码:

<?php

    //接收
    echo "<pre>";
    echo print_r($_POST);
    echo "</pre>";

    $name = $_POST['username'];
    $pwd = $_POST['password'];
    $hobbies = $_POST['hobby'];
    echo "个人信息如下:<br/>";
    echo "用户名:".$name.";密码:".$pwd.";";
    // print_r($hobbies);
    echo "<br/>该人的爱好:";
    foreach ($hobbies as $key => $value) {
        echo "<br/>$key=$value";
    }

    $city = $_POST['city'];
    echo "<br/>你的所在地是:".$city;
    echo "<br/>个人介绍如下:";
    $intro = $_POST['introduce'];
    echo "<br/>$intro";
    $photo = $_POST['myphoto'];
    echo "<br/>所选照片是:".$photo;
?>

get与post数据区分:
get数据已经主要是:
(1)<a></a> 超链接默认是get提交;
(2)header("Location:ok.php?aa=lizzy");这样的方式跳转的时候也是以get方式提交给ok.php。
post和get区别:
(1)安全性:post>get
(2)数据传输大小:[浏览器控制的]post>get
(3)保存到收藏夹:get比较方便。

3、$_REQUEST:
$_REQUEST中可以包含$_GET/$_POST/$_COOKIE这些数组的信息。

4、$_SERVER:
$_SERVER主要包含了http请求行和消息头的信息,同时还有服务器自己的一些信息,比如:DOCUMENT_ROOT、SCRIPT__FILENAME...

5、$_ENV:
该全局数组可以获取环境变量。 在php5.3中默认禁用,可以在php.ini中启用;variables_order = "EGPCS";

6、$_FILE;

7、$_COOKIE:
可以用来在多个页面共享一些信息,cookie是被HTTP协议支持的,浏览器在向服务器请求一个页面时,服务器返回HTTP报文+数据,浏览器会解析从服务器接收的HTTP报文,从而做相应的操作。

8、$_SESSION:
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

9、$GLOBALS:
一个包含了全部变量的全局组合数组,变量的名字就是数组的键,同时一个自定义的全局变量也会自动被$_GLOBALS管理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • 6.4.1 PHP超全局数组(预定义变量)概述 超全局数组(预定义变量) • 服务器变量: $_SERVER...
    曹渊说创业阅读 695评论 0 1
  • PHP 为所有脚本提供了大量的预定义变量(predefined variables)。 这些变量包括了以下这些东西...
    咚门阅读 1,191评论 1 4
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,080评论 4 97
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,112评论 2 38