我正在使用PHP版本5.6.25。以下代碼是複製問題所需的全部內容。nl2br將true轉換爲int並將false轉換爲空字符串
$data['foo'] = true;
$data['bar'] = false;
var_dump($data);
$data['foo'] = nl2br($data['foo']);
$data['bar'] = nl2br($data['bar']);
array_walk_recursive($data, "filter");
var_dump($data);
這給出以下結果。
array (size=2)
'foo' => boolean true
'bar' => boolean false
array (size=2)
'foo' => string '1' (length=1)
'bar' => string '' (length=0)
這是一個PHP的錯誤?有沒有解決方法?
爲什麼你會想要在布爾值上使用nl2br()? – rtfm
'var_dump(nl2br(true));'// string(1)「1」它與array_walk無關 – rtfm
@rtfm我運行這個的數組是混合的。在使用它之前,我應該檢查該值是否是一個字符串。這將爲我解決這個問題。我仍然認爲這是意想不到的行爲。 – Goose