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;
}
?>