這裏有一個網上招我還沒有在上面的答案看見提及:
$val = strval(@$arr["notfound"]); // will not generate errors and
// defaults to an empty string
這是$_GET
參數加載超靈便讓事情變得簡短易讀。獎金,如果你只接受整數,你可以用trim()
或intval()
代替strval()
。
如果缺失或非數字值,intval
的缺省值將爲0
。 strval
的缺省值爲""
,如果爲空,則爲空或爲false。
$val_str = strval(@$_GET['q']);
$val_int = intval(@$_GET['offset']);
See DEMO
現在對於數組,你仍然需要循環的每一個值,並將其設置。但它是非常具有可讀性,IMO:
$arr = Array (1, 4, "0", "V", null, false, true, 'true', "N");
foreach ($arr as $key=>$value) {
$arr[$key] = strval($value);
}
echo ("['".implode("','", $arr)."']");
下面是結果:
['1','4','0','V','','','1','true','N']
有趣的是,true
變爲 「1」,但'true'
保持一個字符串和false
成爲空字符串""
。
現在使用$arr[$key] = intval($value);
相同的數據產生這個結果:
['1','4','0','0','0','0','1','0','0']
`0 == NULL`是TRUE;也。應該使用身份(`===`)。 – 2011-01-28 11:54:41