我收到错误: 严重性:广告
消息:未定义变量 $category_id_for_reports
文件名:pharmacy/financial_report.php
利涅:102
知道我用codeIgniter3在php5中编写了这个应用程序的代码,然后我将php5版本更改为php8
Voici le vue 代码(视图)
<?php
foreach ($medicines as $medicine_name) {
foreach ($payments as $payment) {
$categories_in_payment = explode(',', $payment->category_name);
foreach ($categories_in_payment as $category_in_payment) {
$category_id = explode('*', $category_in_payment);
if ($category_id[0] == $medicine_name->id) {
$category_id_for_report[] = $category_id[0];
}
}
}
}
$category_id_for_reports = $category_id_for_reports ? array_unique($category_id_for_report) : [];
?>
<?php
foreach ($medicines as $category) {
if (in_array($category->id, $category_id_for_reports)) {
?>
<tr class="">
<td><?php echo $category->name ?></td>
<?php
foreach ($payments as $payment) {
$category_names_and_amounts = $payment->category_name;
$category_names_and_amounts = explode(',', $category_names_and_amounts);
foreach ($category_names_and_amounts as $category_name_and_amount) {
$category_name = explode('*', $category_name_and_amount);
if (($category->id == $category_name[0])) {
$amount_per_category[] = $category_name[1] * $category_name[2];
$cost_per_category[] = $category_name[2] * $category_name[3];
$quantity[] = $category_name[2];
}
}
}
?>
<td>
<?php
if (!empty($quantity)) {
echo array_sum($quantity);
$quantity[] = array_sum($quantity);
} else {
echo '0';
}
$quantity = NULL;
?>
</td>
<td>
<?php echo $settings->currency; ?>
<?php
if (!empty($cost_per_category)) {
echo array_sum($cost_per_category);
$total_cost_by_category[] = array_sum($cost_per_category);
} else {
echo '0';
}
$cost_per_category = NULL;
?>
</td>
<td>
<?php echo $settings->currency; ?>
<?php
if (!empty($amount_per_category)) {
echo array_sum($amount_per_category);
$total_payment_by_category[] = array_sum($amount_per_category);
} else {
echo '0';
}
$amount_per_category = NULL;
?>
</td>
</tr>
<?php
}
}
?>
</tbody>
我非常懂事,评论变量 $category_id_for_reports
您需要先声明变量,就在
foreach ($medicines as $medicine_name)
add 之前
$category_id_for_report = []; // this line
foreach ($medicines as $medicine_name) {...
在那行之后
$category_id_for_reports = $category_id_for_reports ? array_unique($category_id_for_report) : [];
应替换为:
$category_id_for_reports = array_unique($category_id_for_report);