⊗ppSpOtRHO 73 of 83 menu

PHPにおける重い操作の繰り返しの最適化

前のレッスンでは、関数の繰り返し呼び出しは 実際には非常に短い時間しかかからず、私たちの 最適化で節約できる時間はそれほど多くありませんでした。しかし、 実行にかなり長い時間がかかる「重い」関数を複数回 呼び出す場合は、状況は遥かに悪化します。

例えば、ある数の約数を見つける関数があるとします:

<?php function getDivisors($num) { $result = []; for ($i = 1; $i <= $num; $i++) { if ($num % $i == 0) { $result[] = $i; } } return $result; } ?>

明らかに、この関数はかなり「重い」です。 したがって、次のようなコードを書くのは悪いアイデアです:

<?php $num = 123456; if (array_sum(getDivisors($num)) >= 10 and array_sum(getDivisors($num)) <= 100) { } else { } ?>

もちろん、良い方法は「重い」操作を 一度だけ実行し、その結果を変数に保存してから、 必要な場所でその変数を使用することです:

<?php $num = 123456; $sum = array_sum(getDivisors($num)); if ($sum >= 10 and $sum <= 100) { } else { } ?>

以下のコードを最適化してください:

<?php $num = 1233456789; if (getSumSquare($num) >= 10 and getSumSquare($num) <= 100) { echo '正しい'; } else { echo '正しくない'; } function getSumSquare($num) { $digits = explode('', $num); $sum = 0; foreach ($digits as $digit) { $sum += $digit * $digit; } return $digit; } ?>
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否