如何理解PHP是弱型別語言
阿新 • • 發佈:2019-01-03
首先,我們一般說php變數型別8種
標量型別:布林boolean,整形integer,浮點float,字元string
複雜型別:陣列array,物件object
特殊型別:資源resource,空null
php底層所有變數都是以結構體zval來實現
其中refcount__gc和is_ref__gc表示變數是否是一個引用。type欄位標識變數的型別,type的值可以是:
IS_NULL,IS_BOOL,IS_LONG,IS_FLOAT,IS_STRING,IS_ARRAY,IS_OBJECT,IS_RESOURCE。PHP
根據type的型別,來選擇如何儲存到zvalue_value。
C語言中,用"\0"作為字串結束符。也就是說一個字串"Hello\0World"在C語言中,用printf來輸出的話,只能輸
變數的符號表與zval的值的對映是通過HashTable實現的。
例如:$val = 'helloworld'; $val的變數名儲存在變數符號表中,代表$val的型別和值的zval結構儲存在雜湊表中,內
核通過變數的符號表與zval地址的雜湊對映,來實現PHP變數的存取。