摘要:最近計(jì)劃把手冊,認(rèn)真的先過一遍。語言參考類型新認(rèn)知強(qiáng)制轉(zhuǎn)換類型用。后期靜態(tài)綁定從這里開始語言參考生成器新認(rèn)知生成器汗水的核心是關(guān)鍵字。語言參考預(yù)定義變量超全局變量前一個(gè)錯(cuò)誤信息原始數(shù)據(jù)以上
最近計(jì)劃把 PHP手冊,認(rèn)真的先過一遍。記錄一些以前不知道,不明確的知識。
語言參考 > 類型【新認(rèn)知】強(qiáng)制轉(zhuǎn)換類型用 settype( mixed $var, string $type )。判斷變量的類型用is_type 函數(shù)。例如:
if (is_int($an_int)) { $an_int += 4; } if (is_string($a_bool)) { echo "String: $a_bool"; }
判斷變量
is_array( mixed $var ) is_bool( mixed $var ) is_float( mixed $var ) is_integer( mixed $var ) is_null( mixed $var ) is_numeric( mixed $var ) //檢測變量是否為數(shù)字或數(shù)字字符串 is_object( mixed $var ) is_resource( mixed $var ) is_scalar( mixed $var ) //檢測變量是否是一個(gè)標(biāo)量 integer、float、string 或 boolean is_string( mixed $var )
判斷函數(shù)和方法
function_exists( string $function_name ) method_exists( mixed $object, string $method_name ) // 判斷類的方法Boolean 布爾類型
【遇到坑】(string) "0.00" 被認(rèn)為是 True,且不為空
$str = "0.00"; $ret = !empty($str) ? $str : "5.00"; echo $ret; //output:0.00
【遇到坑】當(dāng)字符串 與 數(shù)字比較時(shí),會被轉(zhuǎn)換為數(shù)字之后進(jìn)行比較
//將all轉(zhuǎn)換為數(shù)字時(shí)候?yàn)? var_dump(0 == "all"); // TRUE, take careInteger 整型
【新認(rèn)知】整型的最大值可以用常量 PHP_INT_MAX 表示
【新認(rèn)知】PHP 沒有像 C++ / JAVA 的整除運(yùn)算,類似 1 / 2 ,PHP 返回 float 0.5
【舊回顧】轉(zhuǎn)換為整型可以用(int) 或者 (integer) 強(qiáng)制轉(zhuǎn)換?;蛘咄ㄟ^函數(shù) intval() 來轉(zhuǎn)換。
Float 浮點(diǎn)型【新認(rèn)知】比較浮點(diǎn)數(shù)的方法
String 字符串【新認(rèn)知】使用函數(shù) ord() 和 chr() 實(shí)現(xiàn) ASCII 碼和字符間的轉(zhuǎn)換(PS:這點(diǎn)和 Python 是一樣的)
Array 數(shù)組
【新認(rèn)知】 PHP 中沒有多帶帶的“byte”類型,已經(jīng)用字符串來代替了。【新認(rèn)知】 unset()函數(shù)允許刪除數(shù)組中的某個(gè)鍵,但是數(shù)組的鍵不會重新索引。可以使用 array_values() 函數(shù)重新索引。
【遇到坑】避免數(shù)組 $foo[bar] 的寫法,使用 $foo["bar"]
【新認(rèn)知】如果一個(gè)object類型轉(zhuǎn)換為 array,則結(jié)果為一個(gè)數(shù)組,其單元為該對象的屬性。鍵名將為成員變量名,不過有幾點(diǎn)例外:整數(shù)屬性不可訪問;私有變量前會加上類名作前綴;保護(hù)變量前會加上一個(gè) "*" 做前綴。這些前綴的前后都各有一個(gè) NULL 字符。