【发布时间】:2017-04-01 08:26:01
【问题描述】:
我想知道是否可以选择性地在哪个上下文中忽略未定义的变量。对于三元条件,我喜欢可以快速为未定义设置设置默认值的想法,如下所示:
$date = $_POST['date'] ?: date();
要使用它,我必须忽略 E_NOTICE 错误。
但是,我真的不喜欢忽略所有未定义的变量,并且不小心使用未定义的变量而被忽视的想法。所以我想知道这种情况是否有一些中间立场的可能性?
澄清一下,我知道非三元解决方案,例如
$date = (isset($_POST['date'])) ? $_POST['date'] : date();
// or
$date = date();
if(isset($_POST['date'])) {
$date = $_POST['date'];
}
但我想问的是,有没有办法获得速记三元条件的好处,同时仍然避免抑制未定义变量的通知。
【问题讨论】:
-
您应该始终构建代码以考虑通知/警告/错误,而不是抑制或忽略它们。我猜你正在寻找类似
$date = isset($_POST['date']) ? $_POST['date'] : date();的东西?如果设置了 POST,则使用它,如果没有使用date()?
标签: php ternary-operator