我怎样才能摆脱这个 PHP 通知?

发布于 2024-08-04 01:53:46 字数 893 浏览 10 评论 0原文

我正在尝试改进我的整个站点的 php 代码,这将花费很长时间,因为我希望能够有错误报告来显示所有内容并且没有任何通知。

在下面第 6 行的这一小段代码中,

$selected_ date_month 该代码只是较大函数的一部分代码,因此有时会传入 $selected_date_month 并正确设置,但有时则不然。如果不是,我如何防止未设置 $selected_date_month 的通知?

//month dropdown box
$arr_month = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$date_combo .= ' <select name="' . $pre . 'month" class="' .$style. '"><option value="">Month</option>';
$i = 0;
for ($i = 0; $i <= 11; $i++) {
    $date_combo .= " <option ";
    if ($i + 1 == $selected_date_month) {
        $date_combo .= " selected ";
    }
    $date_combo .= " value='" . str_pad($i + 1, 2, "0", STR_PAD_LEFT) . "'>$arr_month[$i]</option>";
}
$date_combo .= "</select>";

I am trying to improve my php code sitewide which is going to take forever because I want to be able to have error reporting on to show all and have no notices.

In this little bit of code below on line 6,

$selected_ date_ month
This code is just a portion of code from a larger function, so sometimes $selected_ date_ month is passed in and then it is properly set but sometimes it is not. When it is not how would I prevent a NOTICE for $selected_ date_ month not being set?

//month dropdown box
$arr_month = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$date_combo .= ' <select name="' . $pre . 'month" class="' .$style. '"><option value="">Month</option>';
$i = 0;
for ($i = 0; $i <= 11; $i++) {
    $date_combo .= " <option ";
    if ($i + 1 == $selected_date_month) {
        $date_combo .= " selected ";
    }
    $date_combo .= " value='" . str_pad($i + 1, 2, "0", STR_PAD_LEFT) . "'>$arr_month[$i]</option>";
}
$date_combo .= "</select>";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

后知后觉 2024-08-11 01:53:46
if (isset($selected_date_month) && $i + 1 == $selected_date_month) {
                $date_combo .= " selected ";
        }

通过这种方式,首先检查 $selected_date_month 是否已设置,然后将其与 $i+1 进行比较

if (isset($selected_date_month) && $i + 1 == $selected_date_month) {
                $date_combo .= " selected ";
        }

In this way first you check if the $selected_date_month is set and then you compare it with $i+1

烟花易冷人易散 2024-08-11 01:53:46

您可以检查变量是否已设置:

if (isset($selected_date_month) && $selected_date_month == $i + 1) 

或抑制错误:

if ($i + 1 == @$selected_date_month)

或关闭通知:

ini_set('error_reporting', E_ALL & ~ E_NOTICE);

隐藏错误可能不是最好的选择。最干净的方法可能是在每种情况下都设置变量,如果没有选择日期,您可以将其设置为空。

You could check that the variable is set:

if (isset($selected_date_month) && $selected_date_month == $i + 1) 

or suppress the error:

if ($i + 1 == @$selected_date_month)

or turn off notices:

ini_set('error_reporting', E_ALL & ~ E_NOTICE);

Hiding the error is probably not the best option. The cleanest approach would probably be to set the variable in every case, you could set it to null if there was no date selected.

九八野马 2024-08-11 01:53:46
  • 检查它是否已设置(使用 isset)。
  • 用一些值初始化它。
  • Check for it being set (using isset).
  • Initialize it with some value.
能怎样 2024-08-11 01:53:46

您可以使用 isset() 来检查 var 是否已设置。如果不是,您可以将其设置为某种默认值。

You could use isset() to check whether the var is set. If it's not you can set it to some sort of default value.

拥抱影子 2024-08-11 01:53:46

尝试 isset() 函数:

    $date_combo .= " <option ";
    if (isset($selected_date_month) && $i + 1 == $selected_date_month) {
            $date_combo .= " selected ";
    }
    $date_combo .= " value='" . str_pad($i + 1, 2, "0", STR_PAD_LEFT) . "'>$arr_month[$i]</option>";

Try the isset() function:

    $date_combo .= " <option ";
    if (isset($selected_date_month) && $i + 1 == $selected_date_month) {
            $date_combo .= " selected ";
    }
    $date_combo .= " value='" . str_pad($i + 1, 2, "0", STR_PAD_LEFT) . "'>$arr_month[$i]</option>";
橪书 2024-08-11 01:53:46

在使用变量之前最好对其进行验证。

$selected_date_month = (int)@$selected_date_month;

Better validate a variable before using it.

$selected_date_month = (int)@$selected_date_month;
别把无礼当个性 2024-08-11 01:53:46

而不是第三行冗余$i = 0;

if (!isset($selected_date_month)) $selected_date_month = NULL;

您可以这样写:这将是最快的, 强>解决方案。

该变量将被设置,并且您不必控制它是否在每次迭代中一次又一次地设置。

Instead of the third line $i = 0;, which is redundant, you could write:

if (!isset($selected_date_month)) $selected_date_month = NULL;

It would be the fastest solution.

The variable would be set and you wouldn't have to control whether it's set again and again in every iteration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文