您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

详解类的静态成员变量(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-10 12:19 点击:

grammar-line: 183

grammar-line: 181

 

word: static

grammar-line: 186           

Z_LVAL((yyval).u.constant)= ZEND_ACC_STATIC;

grammar-line: 182

         走了这个函数zend_do_verify_access_types

         做了检测,static不能用来限制abstract类的成员变量等

 

word: valname

grammar-line: 177

grammar-line: 169

 

word: test

grammar-line: 303

grammar-line: 309

grammar-line: 192

         调用了zend_do_declare_property函数

                   通过CG(active_class_entry)检测,接口不能添加成员变量

                   变量不能是abstact和final

                   检查是否进行了重复定义

                   调用zend_declare_property_ex

                   通过access_type& ZEND_ACC_STATIC这个判断出来是否为静态变量

                            如果是静态变量则target_symbol_table= &ce->default_static_members;

                            如果不是则target_symbol_table= &ce->default_properties;

                   最后zend_hash_update更新属性字段

 

6 结论

类的普通变量和成员变量都存储在类结构的属性里面,仅是存储在的目标hash表不同

 摘自 xiaoq3406的专栏

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • PHP测试
  • 十天学会php之第六天
  • 几种显示数据的方法的比较
  • 使用xmlhttp为网站增加域名查询功能
  • PHP+MYSQL+Javascript数据库查询结果的动态显示
  • 查找数组中指定键名的值
  • 用redis实现跨服务器session
  • 用新浪微博接口发送图片微博失败的原因
  • smarty局部缓存技术[源码分析]
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1