2011年11月24日 星期四

php string 轉 boolean (php_filter)

PHP它是一個weak type的程式語言 所以只要字串有值,拿去做if判斷時,就一定會回傳true 但有時候會希望帶進來的參數為字串 "false" 時希望它的boolean為 false

在php5以前的版本可能只能這樣寫

$bool = 'false';
$result = NULL;
if ($bool == 'false' OR !$bool){
$result = FALSE;
}
var_dump($result);

不過php5之後的版本可以換一個方式寫了

$bool = filter_var($_GET['bool'], FILTER_VALIDATE_BOOLEAN);

這樣$_GET['bool']帶進來的值為 'false','no','null','0' 都會被轉為 FALSE

這個函式就像是JAVA的

Boolean.parseBoolean(strBoolean);

如果要寫一些比較嚴謹的PHP程式用這個函式可能是比較好的作法...

PS. filter_var這個函式不只可以字串轉boolean、也可以驗證email、ip、url等等....

有興趣的話就上PHP官網查一查吧