@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 для отладки.
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
В каждом методеу вас всего 1 return.
В методе getText
return $this->result('Hello World');
Который приводит к вызову метода result
А он уже возвращает
return ['result' => 'successful', 'info' => $text];


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

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

Войти через центр авторизации
Похожие вопросы
LAPTOP.RU Москва
от 150 000 до 190 000 ₽
от 80 000 до 120 000 ₽
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
07 мар. 2021, в 15:48
300000 руб./за проект
07 мар. 2021, в 15:26
7000 руб./за проект
07 мар. 2021, в 15:07
20000 руб./за проект