我尝试使用$ _GET将日期传递给php,否则它将使用当前日期。
try {
$selectedDate = $_GET['date'];
echo 'try';
echo $selectedDate;
} catch (Exception $e) {
$selectedDate = date('Y-m-d', time());
echo 'catch';
}
当我没有传递任何输入时,它显示
注意:未定义的索引:日期
尝试
既然我使用了try catch块,为什么它不会运行catch块?
它只是一个通知。您可以检查它是否存在,如下所示:
try {
if(isset($_GET['date']))
$selectedDate = $_GET['date'];
echo 'try';
echo $selectedDate;
} catch (Exception $e) {
$selectedDate = date('Y-m-d', time());
echo 'catch';
}
我添加了if(isset($ _ GET ['date']))来检查日期是否存在。
如果你仔细检查..未定义索引是一个通知也不例外..为避免这种情况,使用isset()来检查日期是否设置
PHP尝试不会捕获任何E_NOTICE或E_WARNING。
为了解决您的问题,尝试捕获不是必需的。请使用我附上的代码。
try {
$selectedDate = isset($_GET['date'])? $_GET['date'] : date('Y-m-d', time());
echo 'try';
echo $selectedDate;
} catch (Exception $e) {
echo 'catch';
}