php学习之 认清变量的作用范围

任务2:认清变量的作用范围

⚑局部变量与全局变量

变量的存在有着它的生命周期,我们可以让它存在于一个小的函数内部,也可让它存在于整个程序当中。对于一般情况下声明的变量,我们称之为局部变量,只能在当前程序段中存在,而使用$globals声明出来的变量则是在当前页面整个程序当中都会有效。

例:


代码如下:

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

在这段程序当中,
第2至3行,我们建立了两个变量a和b并分别给其赋值为1和2。
第3行至第7行,我们定义了一个自加的函数sum(),其作用是让sum内部的变量a和b进行相加,并将加得的值赋给b。
第8行,调用sum函数。
第9行,用echo将b的值输出。
可能有人会认为此时在网页上输出的值一定是3,但是运行后你会发现,值还是为2,也就是b原先的值。这就是局部变量的原因造成的,在第2至3行当中声明的变量无法在sum()函数中使用,也就是说,sum函数中使用的a和b和第2至3行中a和b只是名字相同,但两者之间毫无关系。所以,在最终输出的b也就是第3行b的值了。

但如果,我们将程序修改下面的样式:


代码如下:

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

我们发现,在sum函数中,我们给变量a和b加上了一个global修饰符,这个时候,a和b就和函数外的a和b建立上了关系,它们就是同一个变量了。因此,这个程序在运行的时候,其结果就为3了。因此,我们在声明全局变量时,只需在局部使用它们时(本例中是在函数sum中),给它们加上一个修饰符global,它们就可以继承外部的值,也就不再是局部变量了。

(0)

相关推荐

  • php学习之 认清变量的作用范围

    任务2:认清变量的作用范围 ⚑局部变量与全局变量 变量的存在有着它的生命周期,我们可以让它存在于一个小的函数内部,也可让它存在于整个程序当中.对于一般情况下声明的变量,我们称之为局部变量,只能在当前程序段中存在,而使用$globals声明出来的变量则是在当前页面整个程序当中都会有效. 例: 复制代码 代码如下: <?php $a=1; $b=2; function sum() {$a; $b; $b=$a+$b; } sum(); echo$b; ?> 在这段程序当中, 第2至3行,我们建立了

  • 原生javascript 学习之js变量全面了解

    1.变量的命名 方法的命名(驼峰命名法) 全部小写 : 单词与单词之间全部下划线 (my_namespace) 大小写混合 : 第一个单词首字母小写其他单词首字母大写. 规则 首字符 英文字母或下划线 组成   英文字母 数字 下划线 禁忌   JavaScript 关键字 保留字 2. 变量的声明 显示声明   :  var 关键字 陋习         :  没有类型 重复声明 隐式声明 不声明直接赋值 正解        : 先声明 后读写 先赋值 后运算 3. 变量类型 值类型 A) 占

  • PHP变量的作用范围实例讲解

    目录 局部变量 全局变量 在函数中使用函数全局变量? 静态变量 局部变量 在函数内部定义的变量 变量的作用范围就是这个函数. 案例 <?php function test(){ $a=10; echo $a; } test(); echo "<hr />"; echo $a; ?> 案例结果 全局变量 在php 脚本中,函数外部定义的变量 变量的作用域为整个PHP 脚本. 案例 <?php $a=10; function test(){ echo $a;

  • Flutter入门学习Dart语言变量及基本使用概念

    目录 正文 变量 变量的声明赋值 变量的划分 默认值 变量的类型推断修饰符 Late变量 类型判断is和类型转换as 一些重要概念 空安全和可空类型? 表达式和语句 注释 DartPad 正文 Dart是Google发布的开源编程语言,是一种面向对象的语言.其主要应用是Flutter框架开发(Android.IOS),此外,也可以用在服务器.脚本.Web开发中.随着Flutter3.0开始支持全平台开发,Dart也可以实现桌面应用. 关于Dart的介绍不再细说.下面开始Dart的使用介绍 首先记

  • PHP学习之PHP变量

    PHP变量 PHP3支持下面类型的变量: (一).内部变量 主要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),对象(object). 1 初始化变量 要在PHP中初始化变量, 你只要简单的给它赋值即可.对于大多数类型,这是最直接的.对于数组和对象,可以使用其它方法. 2 初始化数组 数组可以使用这两种方法之一来赋值: 使用一系列连续数值,或使用array()函数构造 (见 Array functions 部分). 要将连

  • javascript权威指南 学习笔记之变量作用域分享

    不知道,大家对语言中变量的"声明"与"定义"是怎么理解的, 我的理解如下: "声明"变量,只是仅仅声明,而"定义"变量,指声明了,并且赋值了. 例如: 复制代码 代码如下: var name;//只是声明 var num = 11;//声明,并且赋值,即定义了 var password = "yangjiang";//声明,并且赋值,即定义了 下面是几点总结: 变量的作用域:全局的和局部的.(注意:如果尝试

  • JavaScript 学习笔记之变量及其作用域

    一.变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符. 定义:var firstDemo; 二.变量的作用域 2.1基本概念 使用var 定义变量:定义该变量的作用域的局部变量,这种定义变量的方法也被成为显式声明. 这么说不理解的话可以看看下面这个简单粗暴的例子: 复制代码 代码如下: test(); function test(){ var firstDemo="hello";//定义局部变量    

  • Python学习笔记之变量、自定义函数用法示例

    本文实例讲述了Python变量.自定义函数用法.分享给大家供大家参考,具体如下: 不管你学什么编程语言 都逃不出如下套路: 1.怎么定义变量?是否有数据类型,怎么在控制台输出? 2.怎么定义函数?定义类?面向对象的写法是怎样的? 3.如何调用外部类或函数? 4.如何读写文件?网络编程? 5.如何与数据库交互? 6.如何和各种第三方库交互? 7.有什么好用的框架? 变量 name="jack" #定义变量 print(name) #打印变量 #也可以单引号 name='jack' #单引

  • 和孩子一起学习python之变量命名规则

    变量命名规则 下面是关于变量名(也称为标识符)的一些规则 必须以一个字母或一个下划线字符开头.后面可以使用一个字母.数字或下划线字符的序列,长度不限. 字母可以是大写或小写,大小写是不同的.也就是说,Ax不同于aX. 数字可以是从0到9(包括0到9)的任意数字字符. 除了字母.数字和下划线字符,不能使用其他字符.空格.标点符号和其他字符在变量名中都是不允许的. 唯一允许出现的特殊字符是下划线字符.也许你不知道这是什么,下面给出几个例子: First_number=15 Student_name=

  • C++ Primer学习记录之变量

    目录 一.类型说明符 二.变量名 三.初始化 总结 变量的定义形式一般为:类型说明符,变量名和初始化, 一.类型说明符 类型说明符一般就是常用的int,double,char等系统自带的类型关键字和自定义的类. 二.变量名 变量名一般由英文字母(小写).数字.下划线(_)组成,其中数字不能作为变量名的第一位. int a; //合法 int _; //合法 int 8; //不合法,数字不能单独作变量名 int _8; //合法 int a8_; //合法 int a_8; //合法 int _

随机推荐