PHP基础知识点【三】预定义变量

对于全部脚本而言,PHP提供大量的预定义变量。这些变量将所有的外部变量(例如表单提交过来的get,post)表示内部环境变量,并将错误信息表示返回头。

超全局变量(数组)

      超全局变量是在全部作用域中始终可用的内置变量。这意味着无需在函数或者方法中使用global(全局),就可以去访问他们。默认情况下所有的超全局变量都是可用的,例如$_POST['username']这种形式。另外php.ini文件里面有一个register_globals配置选择项,默认是off,一般不建议开启。如果开启后则$_POST['username']超全局变量可以用$username表示,也就是预定义数组下标和变量名一样,这样不太安全,因此一般都是禁用这种方法的。

【1】$GLOBALS

             引用全局作用域中可用的全部变量 一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

//globals
function foo(){
    $foo = 'local var';
    echo '$foo in global scope:'.$GLOBALS['foo'].'<br/>';
    echo '$foo in current scope:'.$foo;
}
$foo = 'AAA';//全局的foo 会影响$GLOBALS['foo']
foo();

【2】$_SERVER

       $_SERVER是一个包含诸如头信息,路径,脚本位置的数组。由web服务器创建,并不能保证所有的服务器都能产生所有的信息,服务器可能会忽略一些信息,或者产生了一些其他的信息,和其他的超全局数组一样。它是一个自动的全局变量,对所有的脚本中都有效。

可以打印看一下自己web一些信息

变量含义
SERVER_ADDR服务端ip
SERVER_NAME服务器名
SERVER_PORT服务器端口号
SERVER_SOFTWARE服务器标识字符串,在响应请求时的头信息中给出
HTTP_REFERER引导用户代理到当前页的前一页的地址(如果存在)
HTTP_USER_AGENT当前请求头中 User-Agent: 项的内容
QUERY_STRING?后面的参数(例如id=1)
PATH_INFO跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息
REQUEST_METHOD访问页面使用的请求方法(例如get post)
REQUEST_TIME请求开始时的时间戳
REQUEST_URI指定访问的页面

【3】$_GET

           通过 URL 参数传递给当前脚本的变量的数组,是通过urldecode()经过解码传递的,解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符,#后面的字符不会传过去。传过去的值默认都是字符串类型。也可以通过method=get的表单进行提交。

var_dump($_GET['id']);
//假设用户访问的是  http://localhost/test.php?id=123@$%!.#aaa
//则会输出string '123@$%!.' (length=8)

【4】$_POST

当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencodedmultipart/form-data 时,会将变量以关联数组形式传入当前脚本。可以通过mothod=post的表单进行提交。

【5】$_FILES

通过 HTTP POST 方式上传到当前脚本的项目的数组。通过mothod=post上传文件,必须要设置enctype="multipart/form-data"

【6】$_COOKIE

通过 HTTP Cookies 方式传递给当前脚本的变量的数组。通常这些Cookies是php脚本通过setcookie()函数设置到用户客户端浏览器中的,这样之后就可以通过访问$_COOKIE这个超全局变量访问到。

【7】$_REQUEST

默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组。但是速度较慢,不推荐使用,而且可以被远程用户篡改并不可信。

【8】$_SESSION

当前脚本可用 SESSION 变量的数组。在会话控制中,服务端利用session来跟踪用户,判断是否登陆。使用前需要在php文件中使用session_start()函数开启Session,然后就可以使用$_SESSION数组注册全局变量。用户就可以在整个网站用访问到这些会话信息。

【9】$_ENV

通过环境方式传递给当前脚本的变量的数组。这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表。

 

其他预定义变量

【1】$php_errormsg

表示前一个错误信息,如果没有错误,则未定义。

echo $php_errormsg;//报未定义
echo $php_errormsg;//输出Undefined variable: php_errormsg

【2】$http_response_header

$http_response_header 数组与 get_headers() 函数类似。当使用HTTP 包装器时,$http_response_header 将会被 HTTP 响应头信息填充。$http_response_header 将被创建于局部作用域中。可以获取到一些服务器的信息。

function get_contents() {
  file_get_contents("http://www.tacks.xyz");
  var_dump($http_response_header);
}
get_contents();

【3】$argc和$argv

$argc传递给脚本的参数数目。$argv — 传递给脚本的参数数组。通常运行与命令行下,传递脚本的参数。

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值