php变量作用域的用法介绍(代码)
php变量作用域的用法介绍(代码)
内容导读
收集整理的这篇技术教程文章主要介绍了php变量作用域的用法介绍(代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3345字,纯文字阅读大概需要5分钟。
内容图文
本篇文章给大家带来的内容是关于php变量作用域的用法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。以下为 PHP 中的各种变量在底层实现中是如何存储的。
变量:
$temp = 'temp';$temp2 = $temp;// keyp *executor_globals.symbol_table.arData[7].key.val@4p *executor_globals.symbol_table.arData[8].key.val@4// valuep *executor_globals.symbol_table.arData[7].val.value.zv.value.str.val@4p *executor_globals.symbol_table.arData[8].val.value.zv.value.str.val@4$temp = 'temp';$temp2 = &$temp;// valuep *executor_globals.symbol_table.arData[7].val.value.zv.value.ref.val.value.str.val@4p *executor_globals.symbol_table.arData[8].val.value.zv.value.ref.val.value.str.val@4
方法:
function test(){ $temp = 'temp'; static $test = 'test';}// function namep *executor_globals.function_table.arData[924].key.val@4// function bodyp *executor_globals.function_table.arData[924].val.value.func// function temp variable keyp *executor_globals.function_table.arData[924].val.value.func.op_array.vars[0].val@4// function temp variable valuep *executor_globals.function_table.arData[924].val.value.func.op_array.literals[0].value.str.val@4// function static variable keyp *executor_globals.function_table.arData[924].val.value.func.op_array.static_variables.arData[0].key.val@2// function static variable valuep *executor_globals.function_table.arData[924].val.value.func.op_array.static_variables.arData[0].val.value.ref.val.value.str.val@4
常量:
// phpdefine('AA', 'aa');// keyp *executor_globals.zend_constants.arData[849].key.val@2// valuep *executor_globals.zend_constants.arData[849].val.value.zv.value.str.val@2
class:
// phpclass Apple{ public $a = 'avalue'; public $a2 = 'avalue'; public static $b = 'bvalue'; public static $b2 = 'bvalue'; const E = 'evalue'; const F = 'fvalue'; public function test(){ $c = 'cvalue'; vr_dump($this->a, $c); } public static function test2(){ $d = 'dvalue'; vr_dump(self::$b, $d); }}$obj = new Apple();$obj->test();Apple::test2();// class name 类名保存在class_table的时候的 key 是不区分大小写的,但是类名字本身在 class_entry 中还是有大小写的p *executor_globals.class_table.arData[153].key.val@5 // 小写p *executor_globals.class_table.arData[153].val.value.ce.name.val@5 // 保持原样// class bodyp *executor_globals.class_table.arData[153].val.value.ce// class protetry keyp *executor_globals.class_table.arData[153].val.value.ce.properties_info.arData[0].key.val@2// class protetry valuep *executor_globals.class_table.arData[153].val.value.ce.default_properties_table.value.str[0].val@6// class static protetry valuep *executor_globals.class_table.arData[153].val.value.ce.default_static_members_table.value.str[0].val@6// class constanct namep *executor_globals.class_table.arData[153].val.value.ce.constants_table.arData[0].key// class constanct valuep *executor_globals.class_table.arData[153].val.value.ce.constants_table.arData[0].val.value.zv.value.str.val@6// class function namep *executor_globals.class_table.arData[153].val.value.ce.function_table.arData[0].key.val@4// class function bodyp *executor_globals.class_table.arData[153].val.value.ce.function_table.arData[0].val.value.func// class function temp variablep *executor_globals.class_table.arData[153].val.value.ce.function_table.arData[0].val.value.func.op_array.vars[0].val
以上就是php变量作用域的用法介绍(代码)的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是为您收集整理的php变量作用域的用法介绍(代码)全部内容,希望文章能够帮你解决php变量作用域的用法介绍(代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。