如何使用PHP函数返回值的数目
我在代码中使用了一个PHP函数,我希望在调用该函数时返回值。例如,我想返回NR SR HVDC ATT的值,如下所示:如何使用PHP函数返回值的数目,php,function,Php,Function,我在代码中使用了一个PHP函数,我希望在调用该函数时返回值。例如,我想返回NR SR HVDC ATT的值,如下所示: if (isset($_POST['action']) AND ! empty($_POST['action']) AND ( $_POST['action'] == 'allUnitMonthWiseDOne')) { $fromdate = date("Y-m-d", strtotime($_POST['fromdate'])); $todate = da
if (isset($_POST['action']) AND ! empty($_POST['action']) AND ( $_POST['action'] == 'allUnitMonthWiseDOne')) {
$fromdate = date("Y-m-d", strtotime($_POST['fromdate']));
$todate = date("Y-m-d", strtotime($_POST['todate']));
$year = date('Y', strtotime($fromdate));
$y = date("Y-m-d", strtotime($fromdate));
$fromMon = date('m', strtotime($fromdate));
$toMon = date('m', strtotime($todate));
$toChoice = $_POST['toChoice'];
?>
<table border="1" style="border-collapse: collapse; font-family: verdana,arial,sans-serif;font-size:10px;" width="100%" >
<tr style="font-weight: 600;">
<td><?php
$divQuery = mysqli_query($dbcon, "SELECT * FROM vefm_comp_division WHERE id=" . $_POST['division']);
$divRow = mysqli_fetch_array($divQuery);
echo $divRow['division_name'] . ' - ' . date("F Y", strtotime($_POST['fromdate'])) . ' to ' . date("F Y", strtotime($_POST['todate']));
?>
</td>
<td colspan="13" style="text-align: center;">PL Estimate for the FY <?= $year ?>-<?= $year + 1; ?></td>
</tr>
<tr style="font-weight: 600;">
<?php if ($_POST['division'] == 1) { ?>
<td><?= $year ?>-<?= $year + 1; ?> PL Estimate</td>
<td>NR</td>
<td>SR</td>
<td>HVDC</td>
<td>ATT</td>
<td>WINS</td>
<td>ONG</td>
<td>ERECTION</td>
<td>ER</td>
<td>TSD</td>
<td>CR</td>
<td>WR</td>
<td>GHY</td>
<td>YTD <?= substr($y, 2, 3) . '-' . substr(($y + 1), 2, 3); ?></td>
<?php } ?>
</tr>
<tr>
<td>Monthly Budget</td>
<?php
$monthlyResult = 0;
if ($_POST['division'] == 1) {
$plQuery = mysqli_query($dbcon, "SELECT id FROM vefm_unit_reference where division_id=1");
}
while ($plResult = mysqli_fetch_array($plQuery)) {
echo '<td>';
echo number_format($monthlyAmt[$plResult['id']] = monthlyBudget($year, $y, $fromdate, $todate, $plResult['id'], $toChoice, $loggeduser, $dbcon), 2, '.', ',');
echo '</td>';
}
echo '<td>';
foreach ($monthlyAmt as &$value) {
$monthlyResult += $value;
}
echo number_format($monthlyResult, 2, '.', ',');
echo '</td>';
?>
</tr>
</table>
<?php
}
function monthlyBudget($year, $y, $fromdate, $todate, $unit, $toChoice, $loggeduser, $dbcon) {
$fromyear = date('Y', strtotime($fromdate));
$toyear = date('Y', strtotime($todate));
$fromMon = date('m', strtotime($fromdate));
$toMon = date('m', strtotime($todate));
$nr = 0;
$sr = 0;
$hvdc = 0;
$att = 0;
$wins = 0;
$ong = 0;
$erec = 0;
$er = 0;
$tsd = 0;
$cr = 0;
$wr = 0;
$guw = 0;
$overallTot = 0;
if ($fromyear == $toyear) {
for ($p = $fromMon; $p <= $toMon; $p++) {
if ($p == 1) {
$mon = 1;
} elseif ($p == 2) {
$mon = 2;
} elseif ($p == 3) {
$mon = 3;
} elseif ($p == 4) {
$mon = 4;
} elseif ($p == 5) {
$mon = 5;
} elseif ($p == 6) {
$mon = 6;
} elseif ($p == 7) {
$mon = 7;
} elseif ($p == 8) {
$mon = 8;
} elseif ($p == 9) {
$mon = 9;
} elseif ($p == 10) {
$mon = 10;
} elseif ($p == 11) {
$mon = 11;
} elseif ($p == 12) {
$mon = 12;
}
$y = $fromyear;
$fromdate = date('Y-m-01', mktime(0, 0, 0, date($mon), 1, date($y))).'<br>';
$todate = date('Y-m-t', mktime(0, 0, 0, date($mon) + 1, 0, date($y))).'<br>';
if ($mon > 3 && $mon < 10) {
$plQuery = mysqli_query($dbcon, "SELECT ecode_id,unit FROM vefm_dailybudget WHERE division=" . $_POST['division'] . " AND budget_type='monthly' AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND common_status IN('Finance - II Approved','Cash Disbursement') AND approval_amount != 0 GROUP BY ecode_id");
while ($plResult = mysqli_fetch_array($plQuery)) {
$Monquery1 = mysqli_query($dbcon, "SELECT eligible_2018 FROM vefm_engineer_details WHERE ecode='" . $plResult['ecode_id'] . "'");
$amt = mysqli_fetch_array($Monquery1);
if ($plResult['unit'] == 1) {
$nr += $amt['eligible_2018'];
} else if ($plResult['unit'] == 2) {
$sr += $amt['eligible_2018'];
} else if ($plResult['unit'] == 4) {
$hvdc += $amt['eligible_2018'];
} else if ($plResult['unit'] == 5) {
$att += $amt['eligible_2018'];
} else if ($plResult['unit'] == 6) {
$wins += $amt['eligible_2018'];
} else if ($plResult['unit'] == 8) {
$ong += $amt['eligible_2018'];
} else if ($plResult['unit'] == 14) {
$erec += $amt['eligible_2018'];
} else if ($plResult['unit'] == 16) {
$er += $amt['eligible_2018'];
} else if ($plResult['unit'] == 17) {
$tsd += $amt['eligible_2018'];
} else if ($plResult['unit'] == 18) {
$cr += $amt['eligible_2018'];
} else if ($plResult['unit'] == 19) {
$wr += $amt['eligible_2018'];
} else if ($plResult['unit'] == 20) {
$guw += $amt['eligible_2018'];
}
}
} else if ($mon > 9 || $mon < 2) {
$plQuery = mysqli_query($dbcon, "SELECT unit,approval_amount FROM vefm_dailybudget WHERE division='" . $_POST['division'] . "' AND budget_type='monthly' AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND common_status IN('Finance - II Approved','Cash Disbursement')");
while ($plResult = mysqli_fetch_array($plQuery)) {
if ($plResult['unit'] == 1) {
$nr += $plResult['approval_amount'];
} else if ($plResult['unit'] == 2) {
$sr += $plResult['approval_amount'];
} else if ($plResult['unit'] == 4) {
$hvdc += $plResult['approval_amount'];
} else if ($plResult['unit'] == 5) {
$att += $plResult['approval_amount'];
} else if ($plResult['unit'] == 6) {
$wins += $plResult['approval_amount'];
} else if ($plResult['unit'] == 8) {
$ong += $plResult['approval_amount'];
} else if ($plResult['unit'] == 14) {
$erec += $plResult['approval_amount'];
} else if ($plResult['unit'] == 16) {
$er += $plResult['approval_amount'];
} else if ($plResult['unit'] == 17) {
$tsd += $plResult['approval_amount'];
} else if ($plResult['unit'] == 18) {
$cr += $plResult['approval_amount'];
} else if ($plResult['unit'] == 19) {
$wr += $plResult['approval_amount'];
} else if ($plResult['unit'] == 20) {
$guw += $plResult['approval_amount'];
}
}
} else if ($mon > 1 && $mon < 4) {
$plQuery = mysqli_query($dbcon, "SELECT DISTINCT(ecode_id),MAX(eligible_allowance)AS monthlyBudgetAmt,unit FROM vefm_dailybudget WHERE division='" . $_POST['division'] . "' AND common_status IN('Finance - II Approved','Cash Disbursement') AND eligible_allowance != 0 AND (approval_date BETWEEN '" . $fromdate . "' AND '" . $todate . "') AND budget_type='monthly' GROUP BY ecode_id ORDER BY ecode_id");
while ($plResult = mysqli_fetch_array($plQuery)) {
if ($plResult['unit'] == 1) {
$nr += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 2) {
$sr += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 4) {
$hvdc += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 5) {
$att += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 6) {
$wins += $amt['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 8) {
$ong += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 14) {
$erec += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 16) {
$er += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 17) {
$tsd += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 18) {
$cr += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 19) {
$wr += $plResult['monthlyBudgetAmt'];
} else if ($plResult['unit'] == 20) {
$guw += $plResult['monthlyBudgetAmt'];
}
}
}
}
//$overallTot = $nr + $sr + $hvdc + $att + $wins + $ong + $erec + $er + $tsd + $cr + $wr + $guw;
return $monthlyBudgetAmt = number_format($nr, 2, '.', '');
//return $monthlyBudgetAmt = number_format($sr, 2, '.', '');
//return $monthlyBudgetAmt = number_format($hvdc, 2, '.', '');
}
}
?>
if(设置($\u POST['action'])和!空($\u POST['action'])和($\u POST['action']=='allUnitMonthWiseDOne')){
$fromdate=日期(“Y-m-d”,标准时间($_POST['fromdate']);
$todate=日期(“Y-m-d”,标准时间($_POST['todate']);
$year=date('Y',strottime($fromdate));
$y=日期(“y-m-d”,标准时间($fromdate));
$fromMon=日期('m',STROTTIME($fromdate));
$toMon=日期('m',标准时间($todate));
$toChoice=$_POST['toChoice'];
?>
财政年度损益估计-
-损益估计
天然橡胶
SR
高压直流输电
ATT
获胜
翁
直立
急诊室
TSD
铬
西铁
GHY
年初至今
月预算
您最好使用一个数组,比如$value
,然后对每个项目使用$value['nr']
,而不是像$nr
这样单独的值
return $value;
它将以关联数组的形式返回所有值
首先需要创建数组(为每个选项创建一个元素,不要使用我在示例代码中输入的…
)
然后使用
$value['nr'] += $plResult['monthlyBudgetAmt'];
您的代码中有大量重复,您应该研究如何减少重复,这也将有助于使代码更加清晰。这(IMHO)是目前的一个主要问题。我需要返回值得尊敬的单位(如NR、SR、HVDC、CR、WR等)的值。因此,如果您的任何问题得到解决,您可以将其标记为已回答吗-
$value['nr'] += $plResult['monthlyBudgetAmt'];