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()
{  
    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;
}
?>

(0)

相关推荐

  • PHP教程 预定义变量

    这些数组非常特别,它们在全局范围内自动生效,例如,在任何范围内自动生效.因此通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals). 复制代码 代码如下: <?php $a = "PHP教程网"; echo "通过\$GLOBALS来取变量值:".$GLOBALS['a']; //输出:通过$GLOBALS来取变量值:PHP教程网 echo "<br/>"; echo "当前执行脚本

  • PHP Global变量定义当前页面的全局变量实现探讨

    PHP Global变量在实际应用中会发现许多问题需要我们不断的去完善处理.我们在这篇文章中就针对PHP Global变量出现的问题给出了一些具体的解决办法. 1:PHP Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件 复制代码 代码如下: $a=123; function aa() { Global $a; //如果不把$a定义为global变量 ,函数体内是不能访问$a的 echo $a; } aa(

  • php中各种定义变量的方法小结

    1.定义常量define("CONSTANT", "Hello world."); 常量只能包含标量数据(boolean,integer,float 和 string). 调用常量时,只需要简单的用名称取得常量的值,而不能加"$"符号,如:echo CONSTANT: 注: 常量和(全局)变量在不同的名字空间中.这意味着例如 TRUE 和 $TRUE 是不同的. 2.普通变量$a = "hello"; 3.可变变量(使用两个美

  • php 变量定义方法

    1.定义常量define("CONSTANT", "Hello world."); 常量只能包含标量数据(boolean,integer,float 和 string). 调用常量时,只需要简单的用名称取得常量的值,而不能加"$"符号,如:echo CONSTANT: 注: 常量和(全局)变量在不同的名字空间中.这意味着例如 TRUE 和 $TRUE 是不同的. 2.普通变量$a = "hello"; 3.可变变量(使用两个美

  • PHP 变量定义和变量替换的方法

    有两种方法把变量替换到字符串中--简单的方法和复杂的方法. 简单的方法是把变量名放在双引号字符串或heredoc中: $who = 'Kilroy'; $where = 'here'; echo "$who was $where"; Kilroy was here 复杂的方法是把要替换的变量用大括号括起来.这种方法可以用于消除歧义或替换数组查找.大括号的经典作用是把变量名从周围的文本中分隔出来: $n = 12; echo "You are the {$n}th person

  • php 静态变量与自定义常量的使用方法

    ⚑ 静态变量的声明与使用 ⚑ 自定义常量的使用方式 什么是静态变量? 静态变量是指用static声明的变量,这种变量与局部变量的区别是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,当下次再用到它的时候,可以保留最近一次的值. 下面举例: 复制代码 代码如下: <?php function add() { static $i=0; $i++; echo $i; } add(); echo " "; add(); ?> 这段程序中,主要定义了一个函数add

  • PHP 变量的定义方法

    变量的定义 ⚑变量的类型 ⚑变量的使用 变量即是存在于内存中可以不断变化的一个个对象,我们可以将内存想象成一个街道,街道中有许多住户,每位住户都会有自己的门牌号码,这就好比是内存中的地址(C语言中经常提到的一个概念,在这里我们就不多讨论了),对于其中一家住户我们可以说是1号楼1号,还可以说成是王小明家,用一个名字来代替一个地址.而王小明家里某一时刻有几个人就是一个变化的量了,可能中午有3个人,下午只有1个人,晚上有5个人.因此,对于内存中的某一地址我们要引用,也可以叫它为A,或者area.这就是

  • php 变量未定义等错误的解决方法

    项目中把错误等级设置为:error_reporting(E_ALL | E_STRICT); 数组变量未定义也会报错,其实挺好的,但有时候真的不需要报该错误,PHP的解决办法是: @$_GET['unkown']; 这样就可以放置该错误提示出来了.

  • PHP教程 变量定义

    PHP 中的变量 变量用于存储值,比如数字.文本字符串或数组. 一旦设置了某个变量,我们就可以在脚本中重复地使用它. PHP 中的所有变量都是以 $ 符号开始的,变量名是区分大小写的. 在 PHP 中设置变量的正确方法是: $var_name = value;PHP 的入门者往往会忘记在变量的前面的 $ 符号.如果那样做的话,变量将是无效的. 虽然在 PHP 中并不需要初始化变量,但这是个好习惯.未初始化的变量具有其类型的默认值 - FALSE,零,空字符串或者空数组. 复制代码 代码如下: <

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

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

  • 浅谈在vue项目中如何定义全局变量和全局函数

    写在前面: 如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数,这两个设置不太难,而且有一些共通之处,可能有一些朋友对此不太了解,所以随便写出来分享一波.有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望可以帮到大家. 定义全局变量 原理: 设置一个专用的的全局变量模块文件,模块里面定义一些变量初始状态,用export default 暴露出去,在main.js里面使用Vu

  • Vue中定义全局变量与常量的各种方式详解

    前言 本文主要跟大家介绍了关于Vue定义全局变量与常量的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 我想要定义一个变量, 在项目的任何地方都可以访问到, 不需要每一次使用的时候, 都引入. 尝试1: 创建 global.js 并且在其中定义 let a = 10; 在入口文件中引入 global.js import './global.js' 在项目中使用: a // 报错 发现报错了, a 并没有定义. 为什么? 这个涉及到模块作用域: 1 每一个 js 都相当于

  • vue项目中定义全局变量、函数的几种方法

    前言 在项目中,经常会复用一些变量和函数,比如用户的登录token,用户信息等.这时将它们设为全局的就显得很重要了,全局变量和全局函数之间有一些相通之处,它们其实很简单,但是有些人可能还不太了解.简单总结分享一波,希望对你有所帮助. 定义全局变量 原理:使用模块(.js或.vue文件)来管理全局变量,最后使用export暴露出去 (最好导出的格式为对象,方便在其他地方调用),当其它地方需要使用时,用import导入该模块 1.使用全局变量专用模块,挂载到main.js文件上面 全局变量模块Glo

  • PHP const定义常量及global定义全局常量实例解析

    const 常量 1.在定义时必须被初始值, 2.前面不加任何修饰符 3.变量名字母一般都大写 4.常量可以被子类继承 5.一个常量是属于一个类的,而不是某个对象的 作用:当某些值是固定不变的,就用const 1.const 定义的常量和define()定义的常量的区别? 希望一个成员变量不被修改 例如圆周率 3.1415926 定义:const 常量名=值; 没有$符 访问:类名 ::常量名 或 接口名::常量名 <?php defined('TEXT'); //检查一个名称的常量是否存在 c

  • vue使用混入定义全局变量、函数、筛选器的实例代码

    说一种没人发的,利用混入mixins来实现全局变量和函数.mixins里面的方法.变量.筛选器会和组件里面的方法.变量.筛选器合并.这种方法优点是ide会有方法.变量.筛选器提示. 一.main.js文件 import Vue from 'vue' import App from './App' import router from './router' import store from './store' import mixin from './utils/mixin' Vue.proto

  • 在vue中多次调用同一个定义全局变量的实例

    在Vue开发中,有很多场景会用到多次重复的API请求. 例如: '//192.168.1.117:1009/' 在多个地方调用,每次书写很麻烦,后期项目维护也不好管理.我们可以在src目录下创建一个api文件夹. 例如: 定义一个公共方法. config.js: export const http='//192.168.1.117:1009/' 在任何页面调用将http方法暴露出来 import {http} from "../../src/api/config" this.$http

  • c++定义全局变量详解

    在C++中定义全局变量是应该尽量在.cpp文件中定义,而不要在.h 文件中 定义,定义好了之后,可以在.h文件中利用extern关键字进行声明.如果在.h文件中定义的话,多层包含可能会引起重复定义的错误.下面是一个示例: 在g_bash.cpp中定义全局变量: // g_bash.cpp #include "g_base.h" int g_TicketCount = 0; // 定义全局变量并初始化 在g_bash.h文件中利用extern关键字进行声明: // g_bash.h #i

  • vue定义全局变量和全局方法的方法示例

    一.全局引入文件 1.先定义共用组件 common.vue <script type="text/javascript"> // 定义一些公共的属性和方法 const httpUrl = 'http://39.105.17.99:8080/' function commonFun() { console.log("公共方法") } // 暴露出这些属性和方法 export default { httpUrl, commonFun } </scrip

  • 详解VUE 定义全局变量的几种实现方式

    最近在学习VUE.js 中间涉及到JS全局变量,与其说是VUE的全局变量,不如说是模块化JS开发的全局变量. 1.全局变量专用模块 就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好. 全局变量专用模块 Global.vue <script type="text/javascript"> const colorList = [ '#F9F900', '#6FB7B7', '#9999CC', '#B766AD', '#B87070', '#FF8F59'

随机推荐