使用三元运算符取消设置 属性

unsetting a property using a Ternary Operator

public function checkTheLogin() {

        (isset($_SESSION['userID'])) ? $this->$signedIn = true. $this->userID = $_SESSION['userID'] : $this->signedIn = false. (unset($this->userID));
    }

我的 class 会话中有 2 个属性 $signedIn 和 $userId.So 我想将 $userId 分配给 $_SESSION['userID'] 并分配 $signedIn = true如果有这样的会话,否则我想分配 $signedIn = false 并取消设置 $userId property.To 做这个任务我决定使用三元运算符而不是使用 if else 语句,我试过了但是它抛出VS 中的一个错误 Code.Hope 有人会帮忙谢谢。

您不能在三元运算符的后置表达式中放置多个表达式。此外,unset 是一个语句,而不是一个表达式,所以它根本不能在三元内部使用。

我能想到的最接近的是数组赋值。但这会将 $this->userID 设置为 null 而不是取消设置。

[$this->signedIn, $this->userID] = 
    isset($_SESSION['userID']) ? 
        [true, $_SESSION['userID']] : 
        [false, null];