博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php中局部变量和全局变量
阅读量:7041 次
发布时间:2019-06-28

本文共 1296 字,大约阅读时间需要 4 分钟。

php中局部变量和全局变量

代码1:函数内部使用函数外部变量错误方法

运行结果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 5 

由此得知,animal()方法中的namename和方法外部的name不是同一个变量。

如何才能在函数内部访问到函数外部的变量呢?可以在函数内部或者外部将namename变量定义为全局变量,在name之前加上global即可;如下所示:

 

代码2:函数内部使用函数外部变量正确方法

运行结果:fish

那么,如果$name变量是在函数内部定义的,能够在函数外部或者别的函数中使用到吗?答案是显而易见的,不能,这就是局部变量,可以看下下面的代码段:

 

代码3:函数外部使用函数内部变量错误方法

运行结果:Notice: Undefined variable: name in D:\wamp\www\index.php on line 6 

$name变量只能在animal()函数内部有意义。问题来了,如果我非要想在函数外部也能使用到函数内部定义的变量该怎么办? 
“可以在函数内部定义变量时将其声明为global”,请看如下代码段:

 

代码4:函数外部使用函数内部变量正确方法

运行结果:fish 

 

可以看到,我们先执行了animal()方法,然后再使用nameanimal()量name的操作,所以,需要记住的是,函数只有被调用了才有意义,且程序执行的顺序时从上到下,从左往右的。

 

 

 


 

局部变量:在函数内部中定义的变量,它的作用域为函数定义范围内。

全局变量:在函数外部定义的变量,它的作用域从定义处一直到文件结尾。
 
在php中函数被视为单独的程序片,所以局部变量会覆盖全局变量,即使局部变量中并定义没有全局变量相同的变量,也会被覆盖。
如下:
$a=5;
$b=3;
function t()
{
 echo $a-$b;//输出0
}
要想在函数中直接使用全局变量可以通过 global关键字声明 或者通过php中自定义的$GLOBALS数组获取
function t()
{  
 global $a,$b;
 echo $a-$b;
}
function t()
{
 echo $GLOBALS['a']-$GLOBALS['b'];
}
静态变量:通过static 定义一个静态变量, 如: 
function test()
{
 static $t;
$t++;
return $t;
}
for($i=0;$i<6;$i++)
{
echo test()."<br />";
}
输出 1 2 3 4 5 
即静态变量在第一次初始化后,该变量的值就一直存在内存中,不会随着函数而被注销。
注意:如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。

 

转载地址:http://zbxal.baihongyu.com/

你可能感兴趣的文章
看不见的"频谱"助力智慧城市建设
查看>>
软件测试文档写作——测试方案
查看>>
大数据的商业化:从数据、模型到业务逻辑
查看>>
Junit在MyEclipse上怎么用?
查看>>
能测试知多少--系统计数器与硬件分析
查看>>
颠覆传统 移动CRM成企业应用热点
查看>>
适合应用RFID的六大领域介绍
查看>>
《Web测试囧事》——2.6 时区不一致造成邮件发送异常
查看>>
需求管理是需求开发的基础
查看>>
干货:模板网站SEO优化技巧!
查看>>
CB Insights:2017年Q1网络安全领域共实现140宗投资
查看>>
安捷伦2016 Q2收入较去年增长6% 调升全年收入指导范围
查看>>
最新 Chrome 可让本地文件在网页应用中打开
查看>>
《Python地理空间分析指南(第2版)》——1.10 GIS中矢量数据的基本概念
查看>>
MySQL自动化运维工具 Inception
查看>>
QGraphicsItem如何使用信号/槽
查看>>
《计算机科学导论》一第2章
查看>>
分布式列式数据库 IndexR 开源啦!
查看>>
微软被评为全球第二大影响力公司
查看>>
《Web前端工程师修炼之道(原书第4版)》——我需要学习哪些语言
查看>>