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'中的字段。 –