#這就是結構體
struct _zval_struct
;
type欄位的值為以下常量(列舉的常量)
is_null, is_bool,is_long,is_double
is_string,is_array,is_object
is_resource
php中的乙個變數,就是底層虛擬機器用乙個結構體來描述的
變數的值是結構體描述的
有4個字段,理解關聯陣列
zend_uint refcount__gc;:活動型別,例如,如果echo下,型別就是字串,依次類推,型別可以判斷周圍環境強制轉換的
zvalue_value value; 值在這個結構體放著呢
聯合的意思就是他們型別其中之一
#聯合的意思就是他們型別其中之一
#是dval還是val、還是指標
typedef
union _zvalue_value str;
#雜湊指標
hashtable *ht;
/* hash table value */
zend_object_value obj;
} zvalue_value;
乙個變數它的值到底是在記憶體中來實現的
乙個變數的值,這個值是什麼型別的?
答:通過type描述的,
值是多少是通過?
答:_zvalue_value聯合體來描述的
乙個變數賦值
$a = 3
/*生產乙個結構體 產生了
type is_long
refcount__gc:1
is_ref__gc :0}*/
is_null了都,value不需要了,聯合體直接null
php中有8種資料型別,為什麼zval->value 聯合體中,只有5種?
1: null,直接 zval->type = is_null,就可以表示,不必設定 value的值.
2: bool型 , zval->type = is_bool, 再設定 zval.value.lval = 1/0;
3: resourc型 ,資源型 往往是伺服器上開啟的乙個介面,如果 檔案讀取介面.
zval->type = is_resource, zval->tyoe.lval = 伺服器上開啟的介面的編號
字串的長度,直接快取在結構體當中了
$b =
'hello'
; type: is_string
refcount_gc:
1 is_ref_gc :
0}
可以看出在php中,字串的長度是直接體現在體系結構中的,strlen的速度非常塊 ,時間複雜度為0(1)
呼叫字串長度非常快
php7後續會寫
php5 3管理操作
php 5.3.3 中 php fpm 的重啟 終止操作命令 php 5.3.3 原始碼中已經內嵌了 php fpm,不用象以前的php版本一樣專門打補丁了,只需要在configure的時候新增編譯引數即可。關於php fpm的編譯引數有 enable fpm with fpm user www w...
php5 3使用手冊,php5 3 注意事項說明
php5.3 新特性1.支援命名空間 namespace 5.3以前 class zend db table select 表示當前這個類檔案位於zend db table下 5.3namespace zend db table class select 2.支援延遲靜態繫結5.3以前 class ...
php5 3使用手冊,php5 3 注意事項說明
本篇文章是對php5.3中需要注意的一些事項進行了詳細的分析介紹,需要的朋友參考下 php5.3 新特性1.支援命名空間 namespace 5.3以前 class zend db table select 表示當前這個類檔案位於zend db table下 5.3namespace zend db...