manual php,PHP - Manual: 介绍 (官方文档)
介紹
為了在 PHP 核心中使用變量,就必須要學(xué)會(huì) PHP 所使用的基本概念的差異。首先,PHP
是一門動(dòng)態(tài)的弱類型語言。其次,PHP 的寫機(jī)制里會(huì)使用內(nèi)存處理的引用計(jì)數(shù)的復(fù)本。請(qǐng)查閱引用計(jì)數(shù)基本知識(shí) 章節(jié)以獲得如何使用計(jì)數(shù)和引用的細(xì)節(jié)。
PHP 變量,通常來說,由兩部分組成:標(biāo)簽(例如,可能是符號(hào)表中的一個(gè)條目)和實(shí)際變量容器。在此手冊(cè)的絕大部分內(nèi)容中都是針對(duì)變量容器。
變量容器,在代碼中稱為 zval,掌握了所需處理變量的所有數(shù)據(jù)。
包括實(shí)際值、當(dāng)前類型、統(tǒng)計(jì)指向此容器的標(biāo)簽的數(shù)量,和指示這些標(biāo)簽是引用還是副本的標(biāo)志。
在 PHP 5.3 中,有關(guān)結(jié)構(gòu)可在 Zend/zend.h 中找到,類似于:
typedef struct _zval_struct zval;
typedef union _zvalue_value {
long lval; /* long value */
double dval; /* double value */
struct { /* string type */
char *val;
int len;
} str;
HashTable *ht; /* hash table value */
zend_object_value obj;
} zvalue_value;
struct _zval_struct {
/* Variable information */
zvalue_value value; /* value */
zend_uint refcount__gc;
zend_uchar type; /* active type */
zend_uchar is_ref__gc;
};
在 zvalue_value
中,通過名稱和注釋可清楚地找到字段所使用的不同類型的內(nèi)部表現(xiàn)形式——尤其是當(dāng)你知道
PHP 數(shù)組實(shí)際上是哈希表時(shí)。但是,其中也遺漏了幾種
PHP 類型:NULL, boolean 和 resources。NULL 不需要值,NULL 就是此類型的值。對(duì)
boolean 和 resource 的值來說,PHP 也使用值字段。比如
boolean 值,為 false 時(shí)存放
0,為 true 時(shí)存放 1。resource
類型的變量存放的是資源的 id。
現(xiàn)在,有個(gè)好消息是你不需要知道這些細(xì)節(jié),因?yàn)樵?PHP 中總是使用宏;壞消息是有很多宏:
有直接存取 zval 的宏,還有經(jīng)常是指向 zval
的指針,甚至是指向 zval
的指針的指針,大多數(shù)宏都有引用這些指針的捷徑。這些宏分布于 Zend/zend.h,
Zend/zend_operators.h 和 Zend/zend_API.h 之中。
總結(jié)
以上是生活随笔為你收集整理的manual php,PHP - Manual: 介绍 (官方文档)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java开发入坑,Java开发的自学路线
- 下一篇: php 网站速度慢,php – 个人用户