真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php變量的實現(xiàn)方法

php變量的實現(xiàn)方法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供湄潭網(wǎng)站建設(shè)、湄潭做網(wǎng)站、湄潭網(wǎng)站設(shè)計、湄潭網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、湄潭企業(yè)網(wǎng)站模板建站服務(wù),10余年湄潭做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

php變量的實現(xiàn)方法:首先聲明一個zval指針,并申請一塊內(nèi)存;然后通過【ZVAL_STRING】宏將值設(shè)置為bar;最后就是將這個zval加入到當(dāng)前的符號表里去,并將其label定義成foo。

php變量的實現(xiàn)方法

php變量的實現(xiàn)方法:

簡介

在官方的PHP實現(xiàn)內(nèi)部,所有變量使用同一種數(shù)據(jù)結(jié)構(gòu)(zval)來保存,而這個結(jié)構(gòu)同時表示PHP中的各種數(shù)據(jù)類型。 它不僅僅包含變量的值,也包含變量的類型。這就是PHP弱類型的核心。

  • 標(biāo)量類型: boolean、integer、float(double)、string

  • 復(fù)合類型: array、object

  • 特殊類型: resource、NULL

變量的存儲結(jié)構(gòu)

PHP在內(nèi)核中是通過zval這個結(jié)構(gòu)體來存儲變量的,它的定義在Zend/zend.h文件里,簡短精煉,只有四個成員組成:

struct _zval_struct {
    zvalue_value value; /* 變量的值 */
    zend_uint refcount__gc;
    zend_uchar type;    /* 變量當(dāng)前的數(shù)據(jù)類型 */
    zend_uchar is_ref__gc;
};
typedef struct _zval_struct zval;
//在Zend/zend_types.h里定義的:
typedef unsigned int zend_uint;
typedef unsigned char zend_uchar;
  • refcount__gc 表示引用計數(shù) 1

  • is_ref__gc 表示是否為引用 0

  • value 存儲變量的值

  • type 變量具體的類型

變量的類型

zval結(jié)構(gòu)體的type字段就是實現(xiàn)弱類型最關(guān)鍵的字段,type的值可以為: IS_NULL、IS_BOOL、IS_LONG、IS_DOUBLE、IS_STRING、IS_ARRAY、IS_OBJECTIS_RESOURCE。 從字面上就很好理解,他們只是類型的唯一標(biāo)示,根據(jù)類型的不同將不同的值存儲到value字段。 除此之外,和他們定義在一起的類型還有IS_CONSTANTIS_CONSTANT_ARRAY。

示例

上面是一段PHP語言的例子,創(chuàng)建一個變量,并把它的值設(shè)置為'bar',步驟: 創(chuàng)建一個zval結(jié)構(gòu),并設(shè)置其類型。 設(shè)置值為'bar'。 將其加入當(dāng)前作用域的符號表,這樣用戶才能在PHP里使用這個變量 具體的代碼為:

{
    zval *fooval;
    MAKE_STD_ZVAL(fooval);
    ZVAL_STRING(fooval, "bar", 1);
    ZEND_SET_SYMBOL( EG(active_symbol_table) ,  "foo" , fooval);
}

首先,我們聲明一個zval指針,并申請一塊內(nèi)存。然后通過ZVAL_STRING宏將值設(shè)置為bar,最后一行的作用就是將這個zval加入到當(dāng)前的符號表里去,并將其label定義成foo,這樣用戶就可以在代碼里通過$foo來使用它。

感謝各位的閱讀!看完上述內(nèi)容,你們對php變量的實現(xiàn)方法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁標(biāo)題:php變量的實現(xiàn)方法
標(biāo)題來源:http://weahome.cn/article/ihccgc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部