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