LeN0vO微型计算机怎么重启,深入PHP内核

PHP的变量符号表是通过哈希表来维护,首先介绍一下再PHP扩展中如何创建一个新的变量。PHP变量介绍,请看我上一篇文章,《深入PHP内核- 弱类型变量原理探究》。

f11fa311adebf6a126afbbf36d83b4dc.png

[php]view plaincopy

1. ZEND_FUNCTION(variable_creation)

2.{

3. zval *new_var1, *new_var2, *new_var3; //创建两个新的变量容器

4.char *string_contents = "This is a new string variable";

5.

6. MAKE_STD_ZVAL(new_var1); //为new_var1申请空间并初始化

7. MAKE_STD_ZVAL(new_var2);

8.

9. ZVAL_LONG(new_var1, 10); //设置new_var1并赋值为long

10. ZVAL_LONG(new_var2, 5);

11. ZVAL_STRINGL(new_var3, string_contents, sizeof(string_contents), 0); /

/设置new_var3为字符串

12.

13. ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);

//设置long_variable为函数variable_creation的局部变量

14. ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

//设置global_variable为全局变量

15.

16. zend_hash_update(

17. &EG(symbol_table),

18."new_var3",

19. strlen("new_var3") + 1,

20. &new_var3,

21. sizeof(zval *),

22. NULL

23. );

24.

25. RETURN_NULL();

26.}

这里的zend_hash_update会更新变量符号表。PHP的数组也是用哈希表来维护,下面通过操作一个array来解释如何使用哈希表来才做数组。

增加一个关联数组:

c110e3592292c937ec30c7540eb53975.png

[php]view plaincopy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值