PHP变量、引用、函数传参之彻底掌握,从此节操是路人
3 月,跳不动了?>>> 今天绝对是兴奋的一天,不仅仅是周五这个特殊的日子(周六日可以休息啦),也不是弄清了某wordpress插件的功能流程,更不是再次买到了想吃很久的手撕牛肉,而是真正解决了一直以来(嘿嘿,其实时间不长)对PHP中变量引用和函数传参的疑惑。 故事源于一个巧合,我在查PHP变量作用域的东西时看到的文章(后面再附上地址,无意侵权作者大大)。因为这篇只讲变量和函数传参的,所以其他的不涉及了(也无力涉及哈哈)。 看这么一句 $a = 'abc'; 当我们定义一个变量时,PHP会为我们做两件事情 申请一个zval结构体,那什么是zval呢 struct _zval_struct { /* Variable information */ zvalue_value value; /* value */ zend_uint refcount; zend_uchar type; /* active type */ zend_uchar is_ref; }; 这个就是zval的C语言定义,在PHP中变量都是用这个结构体来存储,其中成员zvalue_value是一个联合体,用以存储底层强类型变量,这种结构也是实现PHP弱类型的关键,在这里只需要清楚有这么个结构体就可以了。 zval结构体存实际内容(最最里面其实是那个union体),令变量名符号a指向这个zval