PHP Global定义全局变量使用说明
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-17 14:01:50 浏览: 评论:0
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. 冲出局部函数.
- <?php
- //A.php
- function Test_Global()
- {
- Test();
- }
- include 'B.php';//将include 从局部Test_Global函数中移出
- $a = 0 ;
- Test_Global();
- echo $a;
- ?>
- //B.php 文件
- <?php
- function Test()
- {
- global $a;
- $a =1;
- }
- ?>
2.优秀的访问器,代码如下:
- //A.php 文件
- <?php
- include 'B.php';
- $a =0;
- Set_Global($a);
- echo $a;
- ?>
- //B.php 文件
- <?php
- function Set_Global(&$var)
- {
- $var=1;
- }
- ?>
Tags: Global定义 全局变量
- 上一篇:php获取中文字符拼音首字母实例
- 下一篇:浅析php中empty与isset区别
相关文章
- ·PHP中全局变量global和$GLOBALS[]的区别(2013-12-02)
- ·php 全局变量global的使用方法(2013-12-23)
- ·PHP中global全局变量的作用范围(2014-01-06)
- ·PHP 全局变量之Global关键字引用解读(2014-03-06)
- ·php 全局变量与静态变量分析详解(2014-08-04)
- ·PHP全局变量与超级全局变量区别分析(2019-10-30)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)