2017-08-24 45 views
1

此代碼是登錄表單的一部分,我想確保該字段不是空白。當我使用這行代碼,我得到以下錯誤: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的工作。

謝謝!

+0

有人知道如何解決這個問題嗎? –

回答

2

是的,你需要使用下面的語句:

(isset($admin['id']) ? $admin['id'] : 0) 

由於PHP 5.5沒有??null coalesce operator(PHP 7或更高版本),你需要做的老式的手短。

請不要將它放在方括號之間,以便它在 if或else語句和/或函數內不會失敗。

你也可以使用

$admin['id'] ?: 0; 

但是,這將給予通知時,未設置$admin['id']