http://php.net/manual/en/internals2.variables.intro.php空值占用多少内存?
在研究它时,我对如何声明变量的理解完全改变了。我来自.net背景的PHP。什么我的理解是,当我们decalre的
int x = 32;
自从我们宣布整型,所以它采取4 bytes
内存空间,并且空值不占用任何空间,而他们指向NULL的内存引用。
在研究这本PHP手册时,我无法总结出一件事情,即空值如何占用内存中的空间。
感谢
http://php.net/manual/en/internals2.variables.intro.php空值占用多少内存?
在研究它时,我对如何声明变量的理解完全改变了。我来自.net背景的PHP。什么我的理解是,当我们decalre的
int x = 32;
自从我们宣布整型,所以它采取4 bytes
内存空间,并且空值不占用任何空间,而他们指向NULL的内存引用。
在研究这本PHP手册时,我无法总结出一件事情,即空值如何占用内存中的空间。
感谢
应该只占据了VAR声明的部分(一个不适合的内容)的变量本质上是一个zval_struc
typedef struct _zval_struct {
zvalue_value value; /* variable value */
zend_uint refcount__gc; /* reference counter */
zend_uchar type; /* value type */
zend_uchar is_ref__gc; /* reference flag */
} zval;
采取看起来这一些技巧http://www.slideshare.net/jpauli/understanding-php-memory/12-PHP
让我看看这位先生,谢谢 – rummykhan
问题是PHP变量是“动态的”,关于它们所持有的信息的类型和价值。所以,分配它可能是一个数字。下一行可以分配一个字符串!所以,当你声明一个变量时,它可以保存所有可能的类型!即它是一个记录。通过查看记录的字段,可以找到它当前拥有的类型和价值。提供的答案解释了更多。即你声明了可以容纳任何东西的变量'$ x'。然后它被设置为键入int和值32.但这些只是记录'$ x'中的字段。 –