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变量作用域的用法介绍(代码)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com