变量作用域:可以简单地理解为变量的可见区域,变量能被访问的范围。
如同其他语言,php中也有全局作用域和局部作用域之分,但是不同的是:
php中的全局作用域指的是:只能在函数外部使用,而局部作用域指的是:
只能在函数内部使用。
php中的全局变量指的是:在函数外部定义,一般来说只能在函数外部被访问,
不能直接在函数内部可见的变量;
而局部变量指的是:在函数内部定义,只能在函数内部访问的变量。
$name = "csc";
function test(){
echo $name; //运行该脚本则会提示:Undefined variable: name未定义的变量name.
}
test();
由上可知,在函数内部不能直接访问函数外部定义的变量。当然也只是不能直接访问,肯定有间接访问的办法:
php提供了一个global关键字,在函数内部用global声明函数外部的全局变量之后,便可在函数内部访问全局变量了:
$name = "csc";
function test(){
global $name;//在函数中用global声明了全局变量$name之后,对该变量的所有引用都会指向其全局版本。
echo $name; //正常输出$name的值'csc'
}
test();
若是出现同名的全局变量与局部变量呢?
$name = "csc";
function test($name){
echo $name,'<br/>'; //当前只有局部变量$name可见,输出'dqr';
global $name; //声明现在开始$name是全局变量的$name,而非局部变量$name了
echo $name,'<br/>'; //当前$name指向的是全局版本的$name,输出'csc'
$name = 'dqrcsc'; //修改的是全局变量版本的$name
}
test('dqr');
echo $name; //在test()内部被修改,输出'dqrcsc'

php中实际上还存在另一种作用域:超全局作用域,只看名字就知道比全局作用域NB了。
超全局作用域:在函数内外都可见,一般用于php系统预定义的变量。如:$GLOBALS,$_GET,$_COOKIE等等都是所谓的
超全局变量。也称为自动化的全局变量。这就表示其在脚本的所有作用域中都是可用的。
不需要在函数或方法中用 global $variable; 来访问它。
这是就出现了另一种在函数内部访问全局变量的方法:
$name = "csc";
function test(){
echo $GLOBALS['name']; //正常输出$name的值'csc'
}
test();
当然,实质上访问的是超全局变量$GLOBALS,并不是直接访问全局变量$name。
此时,若是出现同名的全局变量与局部变量呢?
$name = "csc";
function test($name){
echo $name,'<br/>'; //当前只有局部变量$name可见,输出'dqr';
echo $GLOBALS['name']; //访问的是全局变量$name,而非局部变量,输出'csc'
}
test('dqr');

php学习笔记4--php中的变量作用域的更多相关文章

  1. python学习笔记三:函数及变量作用域

    一.定义 def functionName([arg1,arg2,...]): code 二.示例 #!/usr/bin/python #coding:utf8 #coding=utf8 #encod ...

  2. shell学习笔记1: shell 中的变量与常见符号使用方法

    变量 声明即用 a=2 b="123" 调用 ${varName}或者 $varName echo $b echo ${a} 常见变量 $?:判断上一个语句是否成功 $0:执行脚本 ...

  3. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring中Bean的作用域

    作用域的种类 Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域.Spring3 为 Bean 定义了五种作用域,具体如下. 1)singleton 单例模式,使用 sing ...

  4. 并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理

    (1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的. 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程 ...

  5. Flutter学习笔记(3)--Dart变量与基本数据类型

    一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...

  6. (转)Python学习笔记(1)__name__变量

    Python使用缩进对齐组织代码的执行,所有没有缩进的代码,都会在载入时自动执行.每个文件(模块)都可以任意写一些没有缩进的代码,并在载入时自动执行.为了区分 主执行代码和被调用文件,Python引入 ...

  7. Web安全学习笔记 SQL注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

  8. [学习笔记] 在Eclipse中导入项目

    参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.

  9. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  10. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中

    前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...

随机推荐

  1. Spring三种实例化Bean的方法

    1.实例化bean的三种方法:(1) 构造器<!-- 体验1 --><bean id="personService" class="com.persia ...

  2. 【转】网络中的AS自治域

    1. 什么是AS自治域? 全球的互联网被分成很多个AS 自治域,每个国家的运营商.机构.甚至公司等都可以申请AS号码,AS号码是有限的,最大数目是65536.各自分配的IP地址被标清楚属于哪个AS号码 ...

  3. 一个小巧的C++Log输出到文件类 (转)

      http://blog.csdn.net/dpsying/article/details/17122739 有时候需要输出一些程序运行的信息,供我们不需要调试就可以直接查看程序运行状态.所以我们需 ...

  4. 计划任务命令crontab、at

    一.为计划任务提供支持 开始为系统建立计划任务之前,需要为系统添加相关设置,以确保计划任务能够正确运行.计划任务需要的支持主要包括两个方面:正确运行系统服务.准确的系统时间. 1.正确运行系统服务 为 ...

  5. 查看Linux系统架构类型的5条常用命令

    导读 很多时候我们都需要查看当前 Linux 系统是 32 位还是 64 位系统架构类型,本文中我将向大家推荐 5 条常用命令.无论你使用的是桌面版或是只装了文本界面的 Linux 环境,以下命令几乎 ...

  6. XMPP协议、IM、客户端互联详解

    导读 对于推送,IM服务器,目前可以使用一些厂家提供的SDK来实现,但是我们的老板又总是担心使用别人的SDK,假如别人的服务出现问题,或者别人偷看咱们的信息,那岂不是出现很大问题了 聊一聊xmpp的服 ...

  7. Foxit Reader 插件下载

    http://www.foxitsoftware.com/Secure_PDF_Reader/addons.php#install 百度云:http://pan.baidu.com/s/1i3DSlv ...

  8. 适配iOS9遇到的一些问题_Scheme白名单_ Bitcode及解决办法

    升级Xcode7 运行项目发现报错如下: 1.Scheme白名单问题 -canOpenURL: failed for URL: “weixin://app/wxdaae92a9cfe5d54c/” - ...

  9. 通用权限底层研究:Web应用限制IP访问的功能实现

    如果你的web应用受到恶意扫描或攻击,你会怎么处理呢?大多数时候从应用日志里可以看到恶意扫描或攻击,遇到此类情况,如有一个可以进行IP访问控制的功能就好些了. 现将在MVC下实现的一个IP访问限制功能 ...

  10. 【Android车载系统 News | Tech 4】知乎--车载话题链接

    知乎--车联网话题http://www.zhihu.com/topic/19646713