欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > php预定义变量

php预定义变量

2018-07-26 639 收藏 0 赞一个 0 真差劲 0 去评论

所谓预定义变量,其实指,php这个语言工具中,预先就定义好的变量;我们只是“拿来使用”。

综述主要有:$_GET, $_POST, $_REQUEST, $_SERVER, $GLOBALS,并且均是数组。

1:系统定义与维护——即我们不应该其给其赋值或销毁其值,只应该去“用其值”。

2:具有超全局作用域——哪里都可以使用。

3:不同情形下可能具有不同的值

$_POST变量含义:它代表用户通过表单以post方式( method=”post” )提交的时候所提交的所有数据——这个称为post数据。

基本演示:post.html 文件

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta charset="utf-8"> 
</head> 
<body> 
<form action="request.php" method="post"> 
    数据1:<input type="text" name="data1"> 
    数据2:<input type="text" name="data2">
    <br/> 
    <input type="submit" value="提交"> 
</form> 
</body> 
</html>

基本演示:post.php

文件[接收数据]

<?php 
    $data1 = $_POST['data1']; 
    $data2 = $_POST['data2']; 
    echo "data1= $data1,data2 = $data2"; 
    echo "<hr/>"; 
    print_r($_POST); 
?>

输出结果:

data1 = 李海洋,data2 = 李海洋
Array ( [data1] => 李海洋 [data2] => 李海洋 )

empty(变量)和empty(变量)的区别:

isset(变量):判断变量是否存在,或变量是否为空(null);如果存在,就是true,否则就是false

empty(变量): 判断变量的“内容”是否为空的(不是null的空,而是没有内容),基本上,是一些硬性规定,如下数据都是“空的”: 0, “”, “0”, false, null, array()空数组也是空如果一个变量内容是空的,empty()返回的结果是true,否则是false

$_GET变量

含义:它代表用户通过get方式( 有5种get形式 )提交的时候所提交的所有数据——这个称为get数据。

小提示:get,post没有翻译!

提交get数据有5种形式:

形式1:

<form action="目标文件.php" method="get"> 
    <input type="text" name="data1" /> 
    <input type="text" name="data2" /> 
    <input type="submit" value="提交" /> 
</form>

这种形式的get数据,跟post数据类似,数据内容由用户填写或选择而得到!

形式2:

<a href=”目标文件.php?data1=5&data2=cctv&age=18”>链接文字</a>

说明:

1,它只是一个链接而已,只是在链接文件名的后面加上“?”,然后一个一个“串接数据”;

2,数据形式为:数据项名称=数据值, 相互之间用“&”符号隔开

3,这种形式的数据也同样是“点击链接”就提交的get数据,但用户只能选择点还是不点,而不能修改数据。

形式3:

<javascript> location.href = “目标文件.php?data1=5&data2=cctv&age=18”; </javascript>

说明:

1,该语句可以看做是通过js技术a标实现的页面跳转功能,跟签的连接功能完全一样!

2,其中该语句,通常都是放在一个函数中,然后因为某个事件发生而去调用该函数!

形式4:

<javascript> location.assign( “目标文件.php?data1=5&data2=cctv&age=18”); </javascript>

说明:

该语句其实跟形式3完全一样功能,只是location这个对象实现页面跳转的另一个语法形式而已!

形式5:

php的跳转语法

<?php 
    //语法形式: 
    header(“location: 目标网页地址”); 
    header(“location: 目标文件.php?data1=5&data2=cctv&age=18”); 
?>

小结:

上述多种get形式提交数据,都要理解为:

跳转到某个页面,并“同时”携带(提交)一定的get数据过去!

不管哪种形式的get数据提交,接收get数据,都只有一种形式,跟post类似:

$v1 = $_GET[‘数据项名称’]; //取得一个get数据项的值;比如$_GET[‘data1’], $_GET[“age”];

也可以“输出”所有get数据:

print_r($_GET);


var_dump($_GET);

$_REQUEST变量

含义:一句话,它是$_GET变量和$_POST变量数据的“合集”:即,它里面同时存储了这两种数据。

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta charset="utf-8"> 
</head> 
<body> 
<form action="request.php" method="post"> 
    数据1:<input type="text" name="data1"> 
    数据2:<input type="text" name="data2">
    <br/> 
    <input type="submit" value="提交"> 
</form> 
</body> 
</html>

php代码:

<?php 
    header("content-type:text/html;charset=utf-8"); 
    if(!empty($_POST)){ 
        echo "<p>post数据:<br/>"; 
        print_r($_POST);
     } 
     if(!empty($_GET)){ 
         echo "<p>get数据:<br/>"; 
         print_r($_GET);
     } 
     if(!empty($_REQUEST)){ 
         echo "<p>REQUEST数据:<br/>"; 
     print_r($_REQUEST); } 
?>

结果为:

data1 = 李海洋,data2 = 李海洋Array ( [data1] => 李海洋 [data2] => 李海洋 )

如果表单为get提交方式:

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta charset="utf-8"> 
</head> 
<body> 
<form action="request.php" method="get"> 
    数据1:<input type="text" name="data1"> 
    数据2:<input type="text" name="data2">
    <br/> 
    <input type="submit" value="提交"> 
</form> 
</body> 
</html>

php代码为:

<?php 
    header("content-type:text/html;charset=utf-8"); 
    if(!empty($_POST)){ 
        echo "<p>post数据:<br/>"; 
        print_r($_POST);
     } 
     if(!empty($_GET)){ 
         echo "<p>get数据:<br/>"; 
         print_r($_GET);
     } 
     if(!empty($_REQUEST)){ 
         echo "<p>REQUEST数据:<br/>"; 
     print_r($_REQUEST); } 
 ?>

结果为:

get数据: Array ( [data1] => 李海洋 [data2] => 李海洋 )REQUEST数据: Array ( [data1] => 李海洋 [data2] => 李海洋 )

怎么能同时具有get和post数据呢?

只有一个方式:

<!–以下action中的?号后面的数据都会以get方式提交–>
<form action=”目标文件.php?data1=5&data2=cctv&age=18” method=”post”> 
    <!--以下表单项的数据都会以post方式提交--> 
    <input type=”text” name=”n1” /> 
    <input type=”text” name=”n1” /> 
    <input type=”submit” value=”提交”/> 
</form>

案例:html代码

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<meta charset="utf-8"> 
</head> 
<body> 
<form action="request.php?d1=5&d2=cctv&age=18" method="post"> 
    数据1:<input type="text" name="data1"> 
    数据2:<input type="text" name="data2">
    <br/> 
    <input type="submit" value="提交"> 
</form> 
</body> 
</html>

案例:php代码

<?php 
    header("content-type:text/html;charset=utf-8"); 
    if(!empty($_POST)){ 
        echo "<p>post数据:<br/>"; 
        print_r($_POST);
     } 
     if(!empty($_GET)){ 
         echo "<p>get数据:<br/>"; 
         print_r($_GET);
     } 
     if(!empty($_REQUEST)){ 
         echo "<p>REQUEST数据:<br/>"; 
    print_r($_REQUEST); } 
?>

实现结果:

post数据: Array ( [data1] => 李海洋 [data2] => 李海洋 )get数据: Array ( [d1]=> 5 [d2] => cctv [age] => 18 )REQUEST数据: Array ( [d1] => 5[d2] => cctv [age] => 18 [data1] => 李海洋 [data2] => 李海洋 )

request数据取值时,跟get数据和post也完全一样!

$_REQUEST[‘数据项名称’];

<?php 
header("content-type:text/html;charset=utf-8"); 
echo "<br/>".$_REQUEST['d1']; 
echo "<br/>".$_REQUEST['d2']; 
echo "<br/>".$_REQUEST['age']; 
echo "<br/>".$_REQUEST['data1']; 
echo "<br/>".$_REQUEST['data2']; 
?>

当post数据和get数据的数据项名称相同时(其实我们反对这么做),默认是post数据覆盖了get数据。

不过这个状况同样可以在php.ini中设置:

默认时:request_order = "GP";修改为:request_order = "PG";$_SERVER变量含义:

它代表在一次浏览网页的过程中的浏览器端的一些信息或服务器端的一些信息。我们只是在程序中可以拿到这些信息,并用于编程所需!比如:取得用户的访问IP地址。

注意:

这种信息,随着不同的页面,和不同的服务器,以及不同的时刻,都可能不同!

要求:

大约有30个左右的信息,我们只要知道其中5个左右!主要有:

$_SERVER[‘REMOTE_ADDR’]:获取访问者的ip地址
$_SERVER[‘SERVER_ADDR’]:获取服务器所在的ip地址
$_SERVER[‘SERVER_NAME’]:获取服务器的名字,其实就是站点设置中的servername
$_SERVER[‘DOCUMENT_ROOT’]:获取站点的真实物理地址,其实就是站点设置中的documentroot
$_SERVER[‘PHP_SELF’]:获取当前网页地址(不含域名部分)
$_SERVER[‘_FILENAME’]:获取当前网页地址物理路径
$_SERVER[‘QUERY_STRING’]获取当前网页地址中的所有get数据(就是?号后面部分),但只是一个整体的字符串而已。
<?php 
echo "<pre>"; print_r($_SERVER); 
echo "</pre>"; 
echo "<table border='1'>"; 
foreach ($_SERVER as $key => $value){ 
    echo "<tr>"; 
    echo "<td>$key</td>"; 
    echo "<td>$value</td>"; 
    echo "</tr>"; 
} 
echo "</table>"; 
?>

$GLOBALS变量

含义:它也是一个“重复性数据”,它里面存储了我们自己定义的所有“全局变量”。

举例:

$v1 = 1; //定义了一个全局变量,

此时,就有了这样一个数据:$GLOBALS[‘v1’],其值就是1

echo $v1 ; //输出1
echo $GLOBALS[‘v1’]; //输出1

这个变量,主要是用于在局部范围不可以使用全局变量的时候,又需要该全局变量的值,此时就可以用它来取得该全局变量的值。

<?php 
    $v1 = 1; 
    echo "<pre>"; 
    print_r($GLOBALS); 
    echo "</pre>"; 
?>


一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论