2011年11月24日 星期四

php string 轉 boolean (php_filter)

PHP它是一個weak type的程式語言 所以只要字串有值,拿去做if判斷時,就一定會回傳true 但有時候會希望帶進來的參數為字串 "false" 時希望它的boolean為 false 在php5以前的版本可能只能這樣寫 ```php $bool = 'false'; $result = NULL; if ($bool == 'false' OR !$bool){ $result = FALSE; } var_dump($result); ``` 不過php5之後的版本可以換一個方式寫了 ```php $bool = filter_var($_GET['bool'], FILTER_VALIDATE_BOOLEAN); ``` 這樣$_GET['bool']帶進來的值為 'false','no','null','0' 都會被轉為 FALSE 這個函式就像是JAVA的 ```javascript Boolean.parseBoolean(strBoolean); ``` 如果要寫一些比較嚴謹的PHP程式用這個函式可能是比較好的作法... PS. filter_var這個函式不只可以字串轉boolean、也可以驗證email、ip、url等等.... 有興趣的話就上PHP官網查一查吧

3 則留言:

  1. 還有三個等於的用法 Orz....

    回覆刪除
  2. 是的!有 === 的用法

    我不知道有沒有誤解你的意思

    此例中講的是把字串的內容

    'true' , 'yes' , 'on' 轉為 純boolean的true

    'false', 'no' , 'off' 轉為 純boolean的false

    回覆刪除
  3. @白目捷 三個等號的作法和本篇所要達表的功能好像沒關係@_@

    @Tsai 之前沒用過filter_var,剛看了一下官網,的確是好物。

    回覆刪除