PHP 5登录“语法错误,意外'?' “而使用??运营商
问题描述:
此代码是登录表单的一部分,我想确保该字段不是空白。当我使用这行代码,我得到以下错误:PHP 5登录“语法错误,意外'?' “而使用??运营商
syntax error, unexpected '?'
if(is_blank($admin['username'])) {
$errors[] = "Username cannot be blank.";
} elseif (!has_length($admin['username'], array('min' => 8, 'max' => 255))) {
$errors[] = "Username must be between 8 and 255 characters.";
} elseif (!has_unique_username($admin['username'], $admin['id'] ?? 0)) {
$errors[] = "Username not allowed. Try another.";
}
我知道,我得到的错误,因为我用PHP 5.5的工作。
谢谢!
答
是的,你需要使用下面的语句:
(isset($admin['id']) ? $admin['id'] : 0)
由于PHP 5.5没有??
null coalesce operator
(PHP 7或更高版本),你需要做的老式的手短。
请不要将它放在方括号之间,以便它在 if或else语句和/或函数内不会失败。
你也可以使用
$admin['id'] ?: 0;
但是,这将给予通知时,未设置$admin['id']
。
有人知道如何解决这个问题吗? –