PHP——特殊的全局变量

来源:互联网 发布:雪梨的淘宝店是哪个店 编辑:程序博客网 时间:2024/05/16 23:56

原文链接:http://www.phpdo.net/index.php/2010/02/01/1-8/

PHP不提供跨脚本的全局变量,但是,因为实际的需要,PHP提供了一些特殊的全局变量用来实现这些操作。

  •  $_GET[]:接收来自用户浏览器使用GET方法发送的变量的数组
  •  $_POST[]:接收来自用户浏览器使用POST方法发送的变量的数组
  •  $_COOKIE[]:接收来自用户浏览器存储在Cookie中的变量的数组
  •  $_ENV[]:用于存储环境变量的数组
  •  $_SERVER[]:用于存储服务器变量的数字


PHP中设置公共文件,不仅有利于提高代码的重用性,而且为后期维护提供了方便。

PHP提供了两种语句用于文件包含: 

  •  Require语句和 require_once 语句
  •  Include 语句和 include_once语句

 Require语句

 语法:require(string filename)

Filename指代要包含的文件名。

 以下是一个使用require语句的例子。代码如下:

 首先是要被包含的文件include.inc:

 <?php
  if($score > 60 or $score == 60)
  echo “及格”;
  if(!($score >60 or $score == 60))
  echo “不及格”;
 ?> 

包含文件test.php如下: 

 <?php
  $score = 60;
  Require(“include.inc”);  //包含文件,输出结果为及格
 ?> 

Require语句还可以使用return语句来返回一个值。

首先是要被包含的文件include.inc: 

 <?php
  if($score > 60 or $score == 60)
  $result =  “及格”;
  if(!($score >60 or $score == 60))
  $result = “不及格”;
  return $result;
 ?> 

使用上面写好的test.php文件可以实现同样的功能。

在使用require包含公用函数时,经常会出现函数不可重定义的错误。

被包含文件include.inc的代码如下:

 <?php
  function checkScore($score = 0)  //用于检查分数的函数
  {
  if($score > 60 or $score == 60)
  $result = “及格”;
  if(!($score > 60 or $score == 60))
  $result = “不及格”;
  return $result;
  }
 ?> 

Include2.inc的代码如下: 

 <?php
  require(“include.inc”);
  echo checkScore(60);
 ?> 

包含文件test.php的代码如下; 

 <?php
  require(“include.inc”);
  require(“include2.inc”);
 ?> 

结果如下:

Fatal error: Cannot redeclare checkscore() (previously declared in E:/xampp/xampp/htdocs/include3.inc:2) in E:/xampp/xampp/htdocs/include.inc on line 9

PHP中,为了预防这种情况的发生,PHP提供了一个能够自动检测文件是否已经被包含的方法,require_once语句。

将上面例子中的require全部改成require_once后,执行

输出:及格。