php中变量的适用范围也叫,PHP之变量范围

前面的话

变量范围即它定义的上下文背景(也就是它的生效范围)。在javascript中,并没有变量范围这一概念,相似的可能是作用域。但是,由于javscript使用的是词法作用域,指变量声明时的位置;而php并不存在变量声明,变量在第一次赋值时相当于声明了变量。所以,二者并不相同。本文将详细介绍php中的变量范围

范围跨度

大部分的PHP变量只有一个单独的范围。这个单独的范围跨度同样包含了include和require引入的文件

这里变量$a将会在包含文件b.inc中生效

函数范围

在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内

下面这个脚本不会有任何输出,因为echo语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值

global关键字

以下脚本的输出将是“3”。在函数中声明了全局变量a和

b之后,对任一变量的所有引用都会指向其全局版本。对于一个函数能够声明的全局变量的最大个数,PHP没有限制

在全局范围内访问变量的第二个办法,是用特殊的PHP自定义$GLOBALS数组

GLOBALS是一个关联数组,每一个变量为一个元素,键名对应变量名,值对应变量的内容。GLOBALS之所以在全局范围内存在,是因为GLOBALS是一个超全局变量

预定义变量

对于全部脚本而言,PHP提供了大量的预定义变量。这些变量将所有的外部变量表示成内建环境变量,并且将错误信息表示成返回头

下面是预定义变量的列表

超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量$GLOBALS— 引用全局作用域中可用的全部变量$_SERVER— 服务器和执行环境信息$_GET— HTTP GET 变量$_POST— HTTP POST 变量$_FILES— HTTP 文件上传变量$_REQUEST— HTTP Request 变量$_SESSION— Session 变量$_ENV— 环境变量$_COOKIE— HTTP Cookies$php_errormsg— 前一个错误信息$HTTP_RAW_POST_DATA— 原生POST数据$http_response_header— HTTP 响应头$argc— 传递给脚本的参数数目$argv — 传递给脚本的参数数组

大多数的预定义变量并不是超全局变量,它们需要用’global’ 关键字来使它们在函数的本地区域中有效

超全局变量

超全局变量在任何范围内都有效,它们并不需要’global’声明

下面是超全局变量的列表

$GLOBALS$_SERVER$_GET$_POST$_FILES$_COOKIE$_SESSION$_REQUEST$_ENV

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值