PHP面试常考易错题之变量作用域解析

PHP面试中变量作用域是面试中常常出现的问题,也是必考的问题,下面就给大姐讲解一下在面试中注意的点:

# living example one

$A="Hello ";

functionprint_A()

{

$A = "phpmysql !!";

global $A;

//global 全局变量 函数是独立的模块 $A外界定义的

echo $A;

}

echo $A; //output Hello

print_A(); //out pot Hello

在你将$A定义为全局变量的时候,并未修改$A的值

考点:

局部变量和全局变量的作用域,函数外部变量为全局变量(本页面以及引入页面),函数内部变量为局部变量

易错点:

答题者区分不清局部变量和全局变量的概念,导致不能准确写出函数输出结果

分析:

1)局部变量只能在函数内部产生作用以及被使用,无论外部怎么修改都将失效,这样也就保证了我们在同一个页

面定义相同名称的变量时候不会出现异常

2)全局适用于多个函数以及多个页面都需要用到时可声明,这样也就能节省内存空间,但是应用时重复定义被覆

盖导致异常的问题也要注意

# living example two

function test(){

$num = 10;

echo $num;

}

test(); //output 10

echo $num;

$num = $num+10;

echo $num;

分析:

以上代码会导致一个变量未定义的waring,我们尚且忽略

1)$num是一个局部变量,那么你在函数内部输出,并且调用函数方法时候会输出10,但是无论你在外面怎么操作

$num这个变量两者都不是同一个变量,因此也不会产生实质性的效果

原文发布于微信公众号 - 思梦PHP(sm_php)

原文发表时间:2018-09-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

10分钟就能学会写代码 你不信 看完这篇文章就能当Python工程师

Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。 ? ...

21300
来自专栏Coding迪斯尼

自制Monkey语言编译器:解释执行return语句和错误处理控制

11350
来自专栏desperate633

深入理解SortSet类型的使用及应用Redis 有序集合(sorted set)SortSet的应用场景SortSet的常用命令

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

35120
来自专栏Python爱好者

Python高效编程(三)

14250
来自专栏IMWeb前端团队

bash 的变量和参数

对一个编程脚本来说,最最基础的当然是变量。 对大多数开发者来说,变量也是最不值得的大说特说的。 但 bash 里的变量有一些特别的地方值得说说,谨防跌坑。 基本...

18200
来自专栏web前端教室

5分钟学会javascript闭包(二)

昨天说了闭包很牛逼,很有用,今天来讲一下,它有什么用处。 它的用处主要有二个, 1,读取函数内部的变量; 2,可以让这些变量的值一直保存在内存中,(内存泄露就是...

20090
来自专栏Java帮帮-微信公众号-技术文章全总结

shell编程基础入门

shell编程基础入门 文章最后有下载shell学习指南电子书链接。 1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bi...

35340
来自专栏前端说吧

【本周面试题】第一周

1、location对象的search属性拿到url中的查询字符串。传到我们提前封装好的getSearch数组中(或者这一步可以也封装到函数中,但那样函数就只能...

6810
来自专栏数据结构与算法

洛谷P1966 火柴排队(逆序对)

首先要保证权值最小,不难想到一种贪心策略,即把两个序列中rank相同的数放到同一个位置

14210
来自专栏北京马哥教育

Python 条件语句

文 | 糖豆 图 | 来源网络 糖豆贴心提醒,本文阅读时间3分钟,文末有秘密! Python 条件语句 Python条件语句是通过一条或多条语句的执行...

36970

扫码关注云+社区

领取腾讯云代金券