@Buhanza

Как вернуть несколько значений из функции?

Как вернуть x1 и x2? return возвращает только что-то одно.
Через массив не получается.
return array($x1,$x2);
и далее пытаюсь вернуть и ничего
list ($zero, $one) = equation ();
echo $zero;

пишу так но 0 реакции
<?php
$a= 1;
$b= -2;
$c= -3;

function prints ($word){
    echo $word;
}
function equation ($a,$b,$c){
    $D=pow($b,2)-4*$a*$c;//D=b^2-4ac
    if ($D > 0) {// если D>0
        $x1=(-$b+sqrt($D))/(2*$a);// Первый X
        $x2=(-$b-sqrt($D))/(2*$a);// Второй X

    }elseif ($D = 0) {
        $x1=(-$b+sqrt($D))/(2*$a);// Первый X

    }elseif ($D < 0){
        $x1='Нет решения';

    }
    return $x1  $x2;
}


$math = equation ($a,$b,$c);
prints($math);
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
Месье знает толк в извращениях!
function prints ($word){
    echo $word;
}
Зачем так делать? Есть же print_r, var_dump
Из-за вот этого убогого куска говнокода у тебя ничего и не получается, потому что либо у тебя вообще не включен показ ошибок, либо ты читать не умеешь. return array($x1,$x2); в equation() возвращает массив, а в prints() ты пытаешься вывести массив через echo как строку без преобразования. Не надо так делать. Убрал твой говнокод prints() и случилась магия! return array($x1,$x2); Работает!
spoiler
<?php
    $a= 1;
    $b= -2;
    $c= -3;
    
    function equation ($a,$b,$c){
        $D=pow($b,2)-4*$a*$c;//D=b^2-4ac
        if ($D > 0) {// если D>0
            $x1=(-$b+sqrt($D))/(2*$a);// Первый X
            $x2=(-$b-sqrt($D))/(2*$a);// Второй X
    
        }elseif ($D = 0) {
            $x1=(-$b+sqrt($D))/(2*$a);// Первый X
    
        }elseif ($D < 0){
            $x1='Нет решения';
    
        }
        return [$x1, $x2];
    }
  
    $math = equation ($a,$b,$c);
    print_r($math);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@itmalex
return [$x1, $x2];

или

return ["x1" => $x1, "x2" => $x2];
Ответ написан
Комментировать
SerafimArts
@SerafimArts
Senior Notepad Reader
Комментировать
@SergeTkach
OpenCart Forever
Используйте хороший редактор кода, Вам бы сразу подсветило строку с ошибкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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