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()を使用して、arrayの各要素を繰り返し、各要素の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()に置き換えられることがよくありますが、2つの関数はまったく同じであり、開発者は習慣に従って使用するものを選択できます。 array_filter() 、匿名関数、 foreachおよびその他のメソッドを組み合わせることにより、アレイの浮動小数点数を柔軟にフィルタリングおよび処理して、コードの堅牢性と読みやすさを改善できます。
IS_Double()を使用すると、データ型をより正確に制御し、PHPアプリケーションのより強力なタイプ保証を提供できます。