@JTester

Как сократить данный код?

if (!(isset($this->test[$id]))) {
   $this->test[$id] = 0;
}

if ($this->test[$id] >= 3) {
   echo 'нельзя';
}
else {
   echo 'получил';
   $this->test[$id] += 1;
}
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Тут надо не сокращать, а рефакторить код до более понятного использования. Если у Вас PHP >=7.0, то можно применить такую конструкцию:
$this->test[$id] = $this->test[$id] ?? 0;

$response = $this->test[$id] >= 3 ? 'нельзя' : 'получил';

$this->test[$id]++;

echo $response;

Однако от этого особо толку не будет, так как код всё равно не особо читаем
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
$this->test[$id]++;
Ответ написан
@rPman
@$this->test[$id]+=$this->test[$id]<3?1:0;
с выводом текста совсем коряво
@$this->test[$id]+=$this->test[$id]<3?print("получил"):1-print("нельзя");


но не надо так делать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы