91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php變量的實現方法

發布時間:2020-08-24 10:22:57 來源:億速云 閱讀:111 作者:小新 欄目:編程語言

php變量的實現方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

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

php變量的實現方法

php變量的實現方法:

簡介

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

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

  • 復合類型: array、object

  • 特殊類型: resource、NULL

變量的存儲結構

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

struct _zval_struct {
    zvalue_value value; /* 變量的值 */
    zend_uint refcount__gc;
    zend_uchar type;    /* 變量當前的數據類型 */
    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 表示引用計數 1

  • is_ref__gc 表示是否為引用 0

  • value 存儲變量的值

  • type 變量具體的類型

變量的類型

zval結構體的type字段就是實現弱類型最關鍵的字段,type的值可以為: IS_NULLIS_BOOLIS_LONGIS_DOUBLEIS_STRINGIS_ARRAYIS_OBJECTIS_RESOURCE。 從字面上就很好理解,他們只是類型的唯一標示,根據類型的不同將不同的值存儲到value字段。 除此之外,和他們定義在一起的類型還有IS_CONSTANTIS_CONSTANT_ARRAY

示例

<?php
$foo = 'bar';
?>

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

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

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

感謝各位的閱讀!看完上述內容,你們對php變量的實現方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜陵市| 孟津县| 潜山县| 黄龙县| 丹凤县| 九龙坡区| 潢川县| 香格里拉县| 樟树市| 建宁县| 民丰县| 仪征市| 达孜县| 高清| 老河口市| 德格县| 吉木萨尔县| 云梦县| 洛川县| 聂拉木县| 成安县| 法库县| 望江县| 兴隆县| 本溪市| 建德市| 宁城县| 辽中县| 武定县| 金堂县| 郁南县| 衢州市| 红河县| 文登市| 阿拉尔市| 都匀市| 兴山县| 台中市| 宁乡县| 巴楚县| 张家港市|