@AlexandrMa

Где в скрипте лишний / неправильный return?

class A{

  protected function result($text){
    return ['result' => 'successful', 'info' => $text];
  }

  protected function resultError($text){
    return ['result' => 'error', 'info' => $text];
  }

}

class B extends A{

  public function getText(){
    return $this->result('Hello World');
  }

}

function showResultAsJSON(array $a){
  echo json_encode($a, true);
}

function showResultAsArray(array $a){
  var_dump($a);
}

$b = new B;
$test = $b->getText();
showResultAsJSON($test);
showResultAsArray($test);


Сейчас всё работает, но смущает, что двойной return. Если оставить один, то результат null.
Поправьте пожалуйста код. Мне надо, чтобы результат наследника, через родителя выводился в виде массива. А далее в showResultAsJSON либо в showResultAsArray для отладки.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
В каждом методеу вас всего 1 return.
В методе getText
return $this->result('Hello World');
Который приводит к вызову метода result
А он уже возвращает
return ['result' => 'successful', 'info' => $text];


return у вас 1 в итоге. Return - это конечная станция функции. И если на конечной станции указана другая функция - то она будет выполнена, а результатом станет уже значение, возвращаемое "дочерней" функции.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
04 мая 2024, в 23:17
1200 руб./в час
04 мая 2024, в 22:32
2000 руб./за проект
04 мая 2024, в 22:10
2001 руб./за проект