php 全局变量范围分析

代码如下:

<?php
$a = 1 ;
include 'b.inc' ;
?>

这里变量 $a 将会在包含文件 b.inc 中生效。但是,在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。


代码如下:

<?php
$a = 1 ; /* global scope */
function Test ()
{
echo $a ; /* reference to local scope variable */
}
Test ();
?>

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a ,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同
PHP 中全局变量在函数中使用时必须申明为全局(global关键字)


代码如下:

<?php
$a = 1 ;
$b = 2 ;
function Sum ()
{
global $a , $b ;
$b = $a + $b ;
}
Sum ();
echo $b ;
?>

以上脚本的输出将是“3”。

(0)

相关推荐

  • PHP超级全局变量数组小结

    php超级全局变量列表 $_GET[] 获得以GET方法提交的变量数组 $_POST[] 获得以POST方法提交的变量数组 $_COOKIE[] 获取和设置当前网站的Cookie标识 $_SESSION[] 取得当前用户访问的唯一标识,以数组形式体现,如sessionid以及自定义session数据 $_ENV[] 当前php环境变量数组 $_SERVER[] 当前php服务器变量数组 $_FILES[] 上传文件时提交到当前脚本的参数值,以数组形式体现 $_REQUEST[] 包含当前脚本提交

  • PHP中全局变量global和$GLOBALS[]的区别分析

    一.举例比较 例一: 复制代码 代码如下: <?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因为$var1被删除了,所以什么东西都没有打印. 例二: 复制代码 代码如下: <?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?> 意外的打印了1.证明

  • 用php实现像JSP,ASP里Application那样的全局变量

    复制代码 代码如下: <?php /**  * 功能:实现像JSP,ASP里Application那样的全局变量  * author: [url]www.itzg.net[/url]  * version: 1.0  * 版权:如许转载请保留版权声明  */ /*+----------------example---------------------- require_once("Application.php"); $arr = array(0=>"Hi&qu

  • PHP全局变量与超级全局变量区别分析

    本文分析了PHP全局变量与超级全局变量区别.分享给大家供大家参考,具体如下: 全局变量就是在函数外面定义的变量.不能在函数中直接使用.因为它的作用域不会到函数内部.所以在函数内部使用的时候常常看到类似global $a; 超全局变量作用域在所有脚本都有效.所以,在函数可直接使用.比如 $_GET,$_SERVER都是超全局变量.除$_GET,$_POST,$_SERVER,$_COOKIE等之外的超全局变量保存在$GLOBALS数组中.注意,不要误写成$_GLOBALS.有点受到$_POST的影

  • PHP Global定义全局变量使用说明

    很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问.比如下面这样: 复制代码 代码如下: $test = 123; abc(); //这里什么都不输出,因为访问不到$test变量function abc(){    echo($test);}$test = 123;abc(); //这里什么都不输出,因为访问不到$test变量function abc(){    echo($test);} 如果,你想在函数内部访问外部变量,你需要这样: 复制代码 代码如下: $

  • php数组声明、遍历、数组全局变量使用小结

    php教程:数组声明,遍历,数组全局变量 复制代码 代码如下: <? /* * 一.数组的概述 * 1.数组的本质:管理和操作一组变量,成批处理 * 2.数组时复合类型(可以存储多个) * 3.数组中可以存储任意长度的数据,也可以存储任意类型的数据 * 4.数组可以完成其他语言数据结构的功能(链表,队列,栈,集合类) * * * * 二.数组的分类 * 数组中有多个单元,(单元称为元素) * 每个元素(下标[键]和值) * 单访问元素的时候,都是通过下标(键)来访问元素 * 1.一维数组,二维数

  • PHP中的超全局变量

    PHP中的超全局变量 从PHP 4.2.0 开始,register_globals 的默认值为 off,这样一来,以前的很多可以直接使用的变量,如 $PHP_SELF 或者你设定的SESSION变量都不能用 "$变量名"的形式访问了,这可能会给你带来很多不变,但却有助于安全性的提高.访问这些变量,你需要使用PHP 超全局变量,如下: $_SERVER 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $HTTP_SERVER_VARS 数组.以前的$PHP_S

  • 认识并使用PHP超级全局变量

    认识并使用PHP超级全局变量 超级全局变量也叫做预定义变量,是PHP系统中自带的变量,它可让你的程序设计更加的方便快捷.它的类型包括: $GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量.该数组的键名为全局变量的名称.从 PHP 3 开始存在 $GLOBALS 数组. $_SERVER 变量由 web 服务器设定或者直接与当前脚本的执行环境相关联.类似于旧数组 $_GET 经由 URL 请求提交至脚本的变量. $_POST 经由 HTTP POST 方法提交至脚本的变量. $_

  • 解析在PHP中使用全局变量的几种方法

    简介即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的.一些常见的全局数据有:程序设定类.数据库连接类.用户资料等等.有很多方法能够使这些数据成为全局数据,其中最常用的就是使用"global"关键字申明,稍后在文章中我们会具体的讲解到.使用"global"关键字来申明全局数据的唯一缺点就是它事实上是一种非常差的编程方式,而且经常在其后导致程序中出现更大的问题,因为全局数据把你代码中原本单独的代码段都联系在一起了

  • PHP中函数内引用全局变量的方法

    先看下面的代码: 复制代码 代码如下: <?php $var1 = "#####"; $var2 = "&&&&&"; function global_references($use_globals) { global $var1, $var2; if (!$use_globals) { $var2 =&$var1; //1 } else { $GLOBALS["var2"] =&$v

随机推荐