PHP中把字符串true/false轉成boolean布爾型

  • 2019 年 10 月 6 日
  • 筆記

在PHP中,無法使用(bool)或者settype()函數把字符串的」true」和」false」轉成布爾型。如果使用上述兩種辦法,會始終返回true。

<?php  $string = 'true';  var_dump((bool) $string);    $string = 'false';  var_dump((bool) $string);    $string = 'true';  var_dump(settype($string, 'boolean'));    $string = 'false';  var_dump(settype($string, 'boolean'));  ?>

返回

bool(true)  bool(true)  bool(true)  bool(true)

參考PHP官網文檔,可自己定義一個函數解決:

//參考:https://www.php.net/manual/zh/function.boolval.php#116547  function is_true($val, $return_null=false){      $boolval = ( is_string($val) ? filter_var($val, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) : (bool) $val );      return ( $boolval===null && !$return_null ? false : $boolval );  }