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

 更新时间:2013年08月15日 17:40:37   转载 作者:  
Global是php中一个比较特殊的命令,大家直接叫他超级全局变量了,下面我来介绍我今天在使用Global定义全局学习笔记了
很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
比如下面这样:
复制代码 代码如下:

$test = 123;
 abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}$test = 123;
abc(); //这里什么都不输出,因为访问不到$test变量
function abc(){
    echo($test);
}

如果,你想在函数内部访问外部变量,你需要这样:
复制代码 代码如下:

$test = 123;
 abc(); //输出123
function abc(){
    global $test;
    echo($test);
}$test = 123;
abc(); //输出123
function abc(){
    global $test;
    echo($test);
}

但如果我们在函数中定义全局变量呢,像下面这样:
复制代码 代码如下:

function abc(){
    global $test;
    $test = 123;
}
abc();
echo($test); //输出123function abc(){
 global $test;
 $test = 123;
}
abc();
echo($test);

//输出123通过这种方式,我们可以在外部访问到函数内部定义的变量
在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!
解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….
解决方案:
1. 冲出局部函数
 //A.php 文件
复制代码 代码如下:

<?php
function Test_Global()
{&nbsp;&nbsp;
    Test();&nbsp;&nbsp;
}&nbsp;&nbsp;
include 'B.php';&nbsp;&nbsp; //将include 从局部Test_Global函数中移出
$a = 0 ;
Test_Global();
echo $a;
?>&nbsp;
//B.php 文件
<?php
function Test()
{
    global $a;
    $a =1;
}
?>

2.优秀的访问器
复制代码 代码如下:

//A.php 文件
<?php
include 'B.php';&nbsp;
$a =0;
Set_Global($a);
echo $a;
?>&nbsp;
//B.php 文件
<?php
function Set_Global(&$var)
{
    $var=1;
}
?>

相关文章

  • php FLEA中二叉树数组的遍历输出

    php FLEA中二叉树数组的遍历输出

    最近在做一个项目其中涉及到“无限级回复”,FLEA中中有一个关于数组的辅助类:FLEA_Helper_Array,这个类里面有一个非常强大的数组处理方法:array_to_tree,这个方法可以把二维数组转换为二叉树结构
    2012-09-09
  • php给每个段落添加空格的方法

    php给每个段落添加空格的方法

    这篇文章主要介绍了php给每个段落添加空格的方法,涉及PHP_EOL变量及数组与字符串的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 一些需要禁用的PHP危险函数(disable_functions)

    一些需要禁用的PHP危险函数(disable_functions)

    有时候为了安全我们需要禁掉一些PHP危险函数,整理如下需要的朋友可以参考下
    2012-02-02
  • php代码收集表单内容并写入文件的代码

    php代码收集表单内容并写入文件的代码

    前两天,一朋友让我帮他写一个收集表单内容并写入文件的简单PHP代码,由于最近工作忙,也没有时间来写,今天终于抽出点时间来完成了这个任务,下面就把相关的代码开源出来,供大家参考
    2012-01-01
  • php约瑟夫问题解决关于处死犯人的算法

    php约瑟夫问题解决关于处死犯人的算法

    这篇文章主要介绍了php约瑟夫问题解决关于处死犯人的算法,实例分析了php关于约瑟夫问题的实现与应用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP使用OB缓存实现静态化功能示例

    PHP使用OB缓存实现静态化功能示例

    这篇文章主要介绍了PHP使用OB缓存实现静态化功能,结合具体实例形式分析了php基于OB缓存读取数据库并生成静态文件相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • PHP异步进程助手async-helper

    PHP异步进程助手async-helper

    这篇文章主要介绍了PHP异步进程助手async-helper的详细用法以及相关代码实例,对此有需要的朋友学习下。
    2018-02-02
  • php生成无限栏目树

    php生成无限栏目树

    本文主要介绍了php生成无限栏目树的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • PHP转盘抽奖接口实例

    PHP转盘抽奖接口实例

    这篇文章主要介绍了PHP转盘抽奖接口的实现方法,实例分析了随机抽奖接口的实现原理与对应数据库操作的技巧,需要的朋友可以参考下
    2015-02-02
  • PHP数据库操作之基于Mysqli的数据库操作类库

    PHP数据库操作之基于Mysqli的数据库操作类库

    Mysqli 是什么,我这里也不进行描述了。因为网上关于 Mysqli 的教程数不胜数,我这里为大家介绍一款基于 Mysqli 的操作数据库类(M.class.php)
    2014-04-04

最新评论