Использование троичного оператора PHP для возврата определенного значения

Я гуглил это и уже просматривал переполнение стека. Я пытаюсь сократить свой код, и у меня есть этот рабочий метод ниже, я хочу переписать в троичном стиле. Может кто-нибудь сказать мне, если это возможно, и если так, что я делаю не так. Благодарю.

public function __get($field){ //refactor this using ternary method
    if($field == 'user_id'){
        return $this->uid;
    } else {
        return $this->fields[$field];
    }
}

Я начал с этого:

($field == 'user_id') return $this->uid : return $this->fields[$field];

и это дает мне неожиданную ошибку возврата.

Я попытался использовать другое решение переполнения стека, которое перечислило возврат до значений, и это не сработало.

return $field == 'user_id' ? $this->uid : $this->fields[$field];

Это дает мне еще одну ошибку о неожиданной публикации, как будто мой метод закрывается некорректно.

1 ответ

Я собираюсь угадать, что-то вроде этого; Вы переделали свой код к этому:

public function __get($field){ //refactor this using ternary method
        return $field == 'user_id' ? $this->uid : $this->fields[$field];
    }
}

public function otherfunction() { /* ... */ }

Скобки не совпадают, и поэтому закрывает определение класса, а следующая ошибка парсера 'unexpected public':)

Другие вопросы по тегам