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


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

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

Похожие вопросы