[李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的作用域
2017-05-12 08:25
676 查看
变量的作用域是变量的一个作用范围,在这个范围内变量为可见的,即可以访问变量的代码区域,相反,如果不在这个范围内变量是不可见的,无法被调用。
对于全局变量,Zend引擎有一个_zend_executor_globals结构,该结构中的symbol_talbe就是全局符号表,其中保存了在顶层作用域中的变量。同样,函数或者对象的方法在被调用是会创建active_symbol_table来保存局部变量。当程序在顶层中使用某个变量时,ZE就会在symbol_table中进行遍历,同理,如果程序运行与某个函数中,Zend引擎会遍历查询与其对应的active_symbol_table,而每个函数的active_symbol_table是相对独立的,由此而实现的作用域的独立。
全局变量与局部变量
当全局变量跟局部变量重名时候,如何区分呢?对于全局变量,Zend引擎有一个_zend_executor_globals结构,该结构中的symbol_talbe就是全局符号表,其中保存了在顶层作用域中的变量。同样,函数或者对象的方法在被调用是会创建active_symbol_table来保存局部变量。当程序在顶层中使用某个变量时,ZE就会在symbol_table中进行遍历,同理,如果程序运行与某个函数中,Zend引擎会遍历查询与其对应的active_symbol_table,而每个函数的active_symbol_table是相对独立的,由此而实现的作用域的独立。
相关文章推荐
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--global语句
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的生命周期
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--数据类型转换
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--链表
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--HashTable
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--预定义变量
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的赋值和销毁
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--HashTable-1
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--PHP的哈希实现
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--简略
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--常量
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--静态变量
- [李景山php] 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的结构和类型--类型提示的实现
- 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的作用域
- 深入理解PHP内核[读书笔记]--第三章:变量及数据类型--变量的作用域
- [PHP] 深入理解PHP内核:变量及数据类型
- [李景山php] 20170505深入理解PHP内核[读书笔记]--第二章:用户代码执行-1
- [李景山php] 20170504深入理解PHP内核[读书笔记]--第一章准备工作和背景知识--2
- [李景山php] 20170504深入理解PHP内核[读书笔记]--第一章准备工作和背景知识--1