PHP Conference Japan 2024

boolval

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

boolval取得變數的布林值

描述

boolval(mixed $value): bool

回傳 valuebool 值。

參數

value

被轉換為 bool 的純量值。

回傳值

valuebool 值。

範例

範例 #1 boolval() 範例

<?php
echo '0: '.(boolval(0) ? 'true' : 'false')."\n";
echo
'42: '.(boolval(42) ? 'true' : 'false')."\n";
echo
'0.0: '.(boolval(0.0) ? 'true' : 'false')."\n";
echo
'4.2: '.(boolval(4.2) ? 'true' : 'false')."\n";
echo
'"": '.(boolval("") ? 'true' : 'false')."\n";
echo
'"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo
'"0": '.(boolval("0") ? 'true' : 'false')."\n";
echo
'"1": '.(boolval("1") ? 'true' : 'false')."\n";
echo
'[1, 2]: '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo
'[]: '.(boolval([]) ? 'true' : 'false')."\n";
echo
'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

以上範例會輸出:

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

另請參閱:

新增註解

使用者貢獻的註解 7 則註解

Matt M
9 年前
給像我一樣來到這裡尋找一種方法將任何值轉換為 0/1 以符合 MySQL 布林值 (tinyint) 欄位的人

<?php
$tinyint
= (int) filter_var($valToCheck, FILTER_VALIDATE_BOOLEAN);
?>

類似字串 "false"、布林值 false、整數 0 的值,tinyint 將會是 0(零)

類似字串 "true"、布林值 true、整數 1 的值,tinyint 將會是 1

如果您接受的資料可能來自像 Javascript 這樣會將字串 "false" 作為布林值 false 傳送的語言,這會很有用。
匿名
3 年前
boolval('false') 傳回 true。
boolval('False') 傳回 true。
info at lomalkin dot ru
11 年前
<?

// 適用於舊版 PHP 使用 boolval() 的方法

if (!function_exists('boolval')) {
function boolval($val) {
return (bool) $val;
}
}
?>
raphael.satyago
9 年前
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 );
}

// 回傳值

is_true(new stdClass); // true
is_true([1,2]); // true
is_true([1]); // true
is_true([0]); // true
is_true(42); // true
is_true(-42); // true
is_true('true'); // true
is_true('on') // true
is_true('off') // false
is_true('yes') // true
is_true('no') // false
is_true('ja') // false
is_true('nein') // false
is_true('1'); // true
is_true(NULL); // false
is_true(0); // false
is_true('false'); // false
is_true('string'); // false
is_true('0.0'); // false
is_true('4.2'); // false
is_true('0'); // false
is_true(''); // false
is_true([]); // false
Babak Bandpey
10 年前
我相信如果您的 PHP 版本不是最新的,雙重否定 !! 可以執行相同的任務並得到相同的結果

var_dump(!!1, !!0, !!"test", !!"");

輸出
布林值 true

布林值 false

布林值 true

布林值 false

祝您一切順利。
uasenior at gmail dot com
4 年前
<?

// 將布林值列印為字串的方法

$b = true;

echo ['false', 'true'][$b];

?>
匿名
10 年前
v2.0 中的拼寫錯誤。
:-)

Hack v2.1

<?php

if( ! function_exists('boolval'))
{
/**
* 取得變數的布林值
*
* @param mixed 要轉換為布林值的純量值。
* @return boolean 變數的布林值。
*/
function boolval($var)
{
return !!
$var;
}
}

?>
To Top