公式の文書によると、 Time_nanos SleepのNANOCONDパラメーターは0〜99,999,999の範囲でなければなりません。着信ナノ秒値がこの範囲を超えるとどうなりますか?
NanSocondパラメーターが999,999,999以下または0未満を超えると、 time_nanos Sleep関数はすぐにFALSEを返し、関数呼び出しが失敗したことを示します。これは、プログラムがいつでも冬眠しないことを意味します。
一部のPHPバージョンでは、無効なナノ秒パラメーターが渡された場合、ランタイム警告がトリガーされ、パラメーターが範囲外であることが促されます。これにより、開発者は時間内にパラメーターの渡されたエラーを検出できます。
機能コールの障害により、プログラムは指定された時間を待つことはありません。これにより、特に正確なタイミングに依存するシナリオでは、その後の論理実行順序とタイミングの例外につながる可能性があります。
以下は、範囲外のナノ秒パラメーターを渡すときに実行する方法を示す例を示します。
<?php
// ナノ2番パラメーターは通常の範囲内です,寝る1半2番(12番 + 500,000,000纳2番)
var_dump(time_nanosleep(1, 500000000)); // 出力 bool(true)
// 纳2番参数超出范围,最大値を超えます
var_dump(time_nanosleep(1, 1000000000)); // 出力 bool(false),そして、警告があるかもしれません
// 纳2番参数负数
var_dump(time_nanosleep(1, -100)); // 出力 bool(false),そして、警告があるかもしれません
?>
上記のコードを実行します。PHPバージョンがサポートしている場合、2番目と3番目の呼び出しがfalseを返し、警告メッセージをプロンプトが表示されます。
パラメーターの合法性<br>を確認してください Time_nanos Sleepを呼び出す前に、NanSocondパラメーターを確認して、0〜999,999,999の間で確認してください。例外パラメーターは、単純な条件を使用してフィルタリングできます。
トライキャッチまたはエラー処理メカニズムを使用してください<br> カスタムエラー処理または例外キャッチングと組み合わせて、潜在的な警告をキャッチし、プログラムのクラッシュを回避します。
合理的な分割時間パラメーター<br> 1秒以上睡眠時間が必要な場合は、範囲外のナノ秒数を避けるために、秒数とナノ秒という2つのパラメーターに分割できます。
time_nanos Sleep関数には、ナノ秒パラメーターの厳格な合法性が必要です。範囲外の場合、関数呼び出しが故障してfalseを返し、警告をトリガーする可能性もあります。プログラムの安定した動作を確保するには、違法な価値を通過しないように、パラメーター範囲を検証する必要があります。
Time_nanos Sleepの使用について詳しく知りたい場合は、公式ドキュメントをご覧ください。
https://gitbox.net/manual/en/function.time-nanosleep.php