• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php变量作用域的用法介绍(代码)

php 搞代码 3年前 (2022-01-21) 13次浏览 已收录 0个评论

本篇文章给大家带来的内容是关于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.<strong style="color:transparent">本&文来源gao@daima#com搞(%代@#码网@</strong><textarea>搞gaodaima代码</textarea>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变量作用域的用法介绍(代码)的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php变量作用域的用法介绍(代码)
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址