为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 全局变量 - 超全局变量

标签:
PHP

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

    这些超全局变量是:

        $GLOBALS

        $_SERVER

        $_REQUEST

        $_POST

        $_GET

        $_FILES

        $_ENV

        $_COOKIE

        $_SESSION

1、$GLOBALS — 引用全局作用域中可用的全部变量

$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。

PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

下面的例子展示了如何使用超级全局变量 $GLOBALS:


<?php $x = 75; $y = 25;  function addition() {   $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; }  addition(); echo $z?>

2、$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。

    示例代码:


<?php echo $_SERVER['PHP_SELF'];echo "<br>";echo $_SERVER['SERVER_NAME'];echo "<br>";echo $_SERVER['HTTP_HOST'];echo "<br>";echo $_SERVER['HTTP_REFERER'];echo "<br>";echo $_SERVER['HTTP_USER_AGENT'];echo "<br>";echo $_SERVER['SCRIPT_NAME'];?>

3、PHP $_REQUEST 用于收集 HTML 表单提交的数据。

    示例代码:


<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form><?php $name $_REQUEST['fname']; echo $name?></body></html>

4、PHP $_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。

下面的例子展示了一个包含输入字段和提交按钮的表单。当用户点击提交按钮来提交数据后,表单数据会发送到 <form> 标签的 action 属性中指定的文件。在本例中,我们指定文件本身来处理表单数据。如果您希望使用另一个 PHP 页面来处理表单数据,请用更改为您选择的文件名。然后,我们可以使用超全局变量 $_POST 来收集输入字段的值:


<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form> <?php $name $_POST['fname']; echo $name?></body></html>

5、PHP $_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。

$_GET 也可以收集 URL 中的发送的数据。

假设我们有一张页面含有带参数的超链接:


<html><body><a href="test_get.php?subject=PHP&web=W3school.com.cn">测试 $GET</a></body></html>

    当用户点击链接 "Test $GET",参数 "subject" 和 "web" 被发送到 "test_get.php",然后您就能够通过 $_GET 在 "test_get.php" 中访问这些值了。

下面的例子是 "test_get.php" 中的代码:


<html><body><?php echo "Study " $_GET['subject'] . " at " $_GET['web'];?></body></html>

6、通过 HTTP POST 方式上传到当前脚本的项目的数组。

     示例代码:


<form enctype="multipart/form-data" action="upload.php" method="post"<input type="hidden" name="MAX_FILE_SIZE" value="1000"<input name="myFile" type="file"<input type="submit" value="上传文件"</form>


当客户端提交后,我们获得了一个$_FILES 数组 


$_FILES数组内容如下: 

$_FILES['myFile']['name'] 客户端文件的原名称。 

$_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 

$_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 

$_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 

$_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量) 

UPLOAD_ERR_OK 

值:0; 没有错误发生,文件上传成功。 

UPLOAD_ERR_INI_SIZE 

值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 

UPLOAD_ERR_FORM_SIZE 

值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 

UPLOAD_ERR_PARTIAL 

值:3; 文件只有部分被上传。 

UPLOAD_ERR_NO_FILE 

值:4; 没有文件被上传。 

值:5; 上传文件大小为0. 


7、PHP中的$_ENV是一个包含服务器端环境变量的数组。 $_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你可以尝试直接输出它。

    当你想看看一个变量中究竟有什么东西在里面时,我所知道的方式有三种:

    1、var_dump($_ENV);

    2、print_r($_ENV);

    3、foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';}


8、通过 HTTP Cookies 方式传递给当前脚本的变量的数组。PHP 的 $_COOKIE 变量用于取回 cookie 的值。

在下面的例子中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:


<?php// Print a cookieecho $_COOKIE["user"];// A way to view all cookiesprint_r($_COOKIE);?>


9、存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量:


<?phpsession_start();// store session data$_SESSION['views']=1;?><html><body><?php//retrieve session dataecho "Pageviews="$_SESSION['views'];?></body></html>

输出:


Pageviews=1


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消