應該說明的是,如果其引數的 _類型_ 為布林值,則此函式會傳回 true。它不會將值轉換或強制轉換為布林值類型,不確定為什麼這麼多註解都著重於如何執行此操作。
但是,如果您來到這裡尋找將值轉換為布林值類型的解決方案,請使用此方法
to_bool($x) { return (bool)$x; }
(PHP 4, PHP 5, PHP 7, PHP 8)
is_bool — 找出變數是否為布林值
value
要評估的變數。
範例 1 is_bool() 範例
<?php
$a = false;
$b = 0;
// 因為 $a 是布林值,所以會傳回 true
if (is_bool($a) === true) {
echo "是,這是一個布林值";
}
// 因為 $b 不是布林值,所以會傳回 false
if (is_bool($b) === false) {
echo "否,這不是布林值";
}
?>
應該說明的是,如果其引數的 _類型_ 為布林值,則此函式會傳回 true。它不會將值轉換或強制轉換為布林值類型,不確定為什麼這麼多註解都著重於如何執行此操作。
但是,如果您來到這裡尋找將值轉換為布林值類型的解決方案,請使用此方法
to_bool($x) { return (bool)$x; }
檢查變數是否為布林值是一回事,評估變數的值是否表示布林條件(true 或 false)則是另一回事。
以下是一個簡單的函式,可檢查接收到的變數在布林等效性方面的狀態(不區分大小寫)。
<?php
/**
* 檢查「布林」條件 :)
*
* @param [mixed] $variable 可以是任何值(字串、布林值、整數等等)
* @return [boolean] 對於「1」、「true」、「on」和「yes」傳回 TRUE
* 對於「0」、「false」、「off」和「no」傳回 FALSE
* 否則傳回 NULL。
*/
function is_enabled($variable)
{
if (!isset($variable)) return null;
return filter_var($variable, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
}
?>
當然,這是一種簡單的方法,但在大多數情況下,它都能正確地完成工作。
而且,只是為了從正確的角度來看待這個問題,以下是一個真正的函式,它做了 Phill 所揭露的事情
<?php
/**
* 將 $variable 轉換為布林值(改編自 Phill 的答案)
*
* @param [mixed] $variable 可以是任何值
* @return [boolean] 傳回 $variable 的布林值等效值,基於 Zend Enegine 的解釋
*/
function to_bool($variable)
{
return (bool)$variable;
}
?>
我希望它能幫助到某人。祝您程式碼編寫愉快。