実際の開発では、数回ごとにタスクを実行したり、固定長でアレイをループするなど、いくつかの定期的な問題に遭遇します。 PHPは、フローティングポイント数(つまり、残り)のモジュラスを見つけるための組み込み関数fmod()を提供します。
fmod()は、浮動小数点数をモジュロするために使用される関数です。その基本的な構文は次のとおりです。
fmod(float $x, float $y): float
フローティングポイントの残りを$ xで割って$ yを返します。場合によっては、 fmod()は、 %演算子を使用するよりも、より複雑で正確な浮動小数点の周期計算を処理できます(整数のみ)。
ループで5回ごとにリクエストを送信したいと想像してください。FMOD ()を使用して、現在のイテレーションが5回目の複数であるかどうかを判断できます。
for ($i = 1; $i <= 20; $i++) {
echo "第 {$i} 2番目のループ\n";
if (fmod($i, 5) == 0) {
echo ">> 定期的な操作を実行します,訪問する場合 <a href=\"https://m66.net/api/ping\">https://m66.net/api/ping</a>\n";
}
}
実行結果は、5番目、10、15、および20サイクルに指定された操作を出力します。これは、動作を定期的にトリガーする必要に非常に適しています。
長さnの配列を無限に反復する場合、 fmod()を使用して、境界を超えずにインデックスを制御できます。
$data = ['春', '夏', '秋', '冬'];
$count = count($data);
for ($i = 0; $i < 10; $i++) {
$index = (int)fmod($i, $count);
echo "第 {$i} 季節を訪れてください:{$data[$index]}\n";
}
出力は、「春、夏、秋、冬、冬、夏、秋、冬、冬...」という順序で印刷されます。
このロジックは、バックグラウンドデータを処理するときにフロントエンドカルーセル図でも一般的に使用されます。各グループに3枚の写真があると仮定すると、現在のグループのどのグループのグループを計算したい場合は、以下を使用できます。
$totalImages = 12;
$groupSize = 3;
for ($i = 0; $i < $totalImages; $i++) {
$group = floor($i / $groupSize) + 1;
$position = (int)fmod($i, $groupSize) + 1;
echo "画像ID: {$i} 最初のものに属します {$group} グループ,第 {$position} 写真\n";
}
このような出力構造は、たとえば構築するために直接使用できますタイプの静的パス。
Modulo操作にも%を使用できますが、整数に限定されています。データに浮動小数点数(時間、座標、長さなど)が含まれている場合、 fmod()はより堅牢な選択です。例えば:
$angle = 370.5;
$normalized = fmod($angle, 360); // 消す 10.5
これは、回転角度、定期的なアニメーションフレームなどの処理に特に役立ちます。
ループ構造の定期的な問題を扱う場合、 FMOD()は、境界と周波数のロジックの手動で判断されることを避けるためのエレガントで正確な方法を提供します。コード構造を簡素化するだけでなく、読みやすさとメンテナンスも改善します。プロジェクトに定期的な操作が含まれている場合、 FMOD()を使用して効率と安定性を向上させることもできます。