is_double()是PHP 的一個內建函數,用於判斷一個變量是否是浮點類型。它的用法和is_float()完全相同,實際上is_double()是is_float()的別名。
文法:
is_double(mixed $var): bool
返回值:
如果$var是浮點數,返回true
否則返回false
我們可以結合array_filter()函數與is_double()來過濾出數組中的浮點數元素。例如:
<?php
$values = [10, 3.14, 'hello', 2.718, 42, 0.99, true];
$floats = array_filter($values, 'is_double');
print_r($floats);
?>
輸出結果:
Array
(
[1] => 3.14
[3] => 2.718
[5] => 0.99
)
這裡我們用array_filter()遍歷數組中的每一個元素,並對每個元素調用is_double() 。返回的數組中只保留了浮點數。
如果你想做更複雜的檢查,例如只保留大於1.0 的浮點數,你可以使用匿名函數作為回調:
<?php
$values = [0.5, 1.5, 2, '3.0', 3.14, false];
$result = array_filter($values, function($val) {
return is_double($val) && $val > 1.0;
});
print_r($result);
?>
輸出結果:
Array
(
[1] => 1.5
[4] => 3.14
)
有時候我們需要遍歷數組並對每個元素進行類型檢查,可以使用foreach循環:
<?php
$data = [1.23, '2.34', 3, 4.56, null];
foreach ($data as $index => $value) {
if (is_double($value)) {
echo "元素索引 $index 是浮點數,值為:$value\n";
} else {
echo "元素索引 $index 不是浮點數,類型為:" . gettype($value) . "\n";
}
}
?>
輸出結果:
元素索引 0 是浮點數,值為:1.23
元素索引 1 不是浮點數,類型為:string
元素索引 2 不是浮點數,類型為:integer
元素索引 3 是浮點數,值為:4.56
元素索引 4 不是浮點數,類型為:NULL
設想你在構建一個簡單的API,它接受來自客戶端的數字數組,並只提取浮點數來進行某些計算:
<?php
// 假設這是從 POST 請求中收到的數據
$user_input = json_decode(file_get_contents('https://gitbox.net/api/input'), true);
$floats = array_filter($user_input, 'is_double');
// 進行後續計算
$total = array_sum($floats);
echo "浮點數總和為:$total";
?>
雖然is_double()在實際使用中常被is_float()替代,但兩者功能完全一致,開發者可以根據習慣選擇使用哪一個。通過結合array_filter() 、匿名函數、 foreach等方法,我們可以靈活地對數組中的浮點數進行篩选和處理,提升代碼的健壯性和可讀性。
使用is_double() ,可以更精確地控制數據類型,為PHP 應用提供更強的類型保障。