Значения массива PHP не изменяются

Я пытался сделать программу для синтетического деления, которое требует факторинга, поэтому я написал эту функцию для вычисления целого числа, которое работает, но оно никогда не изменяет значения массива php $ factor. Любая помощь будет принята с благодарностью.

$factors=array();
$i;
function factor($x){
    if($x==0){
        echo "(0,0)";
        } else {
            $n=false;
            if($x<0) {
                $x=abs($x);
                $n=true;
            }
            for($i=2; $i<=$x; $i++) {
                if($x%$i==0){
                    if($n){
                        $factors[(count($factors))]=(-1*($x/$i));
                        $factors[(count($factors))]=($i);
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=(-1*$i);
                    } else {
                        $factors[(count($factors))]=($x/$i);
                        $factors[(count($factors))]=($i);
                    }
                }
            }
        }
    }
factor(-4);

1 ответ

Решение

Попробуй это

function factor($x){
     $factors=array();
    if($x==0){
        echo "(0,0)";
    } else {
        $n=false;
        if($x<0) {
            $x=abs($x);
            $n=true;
        }
        for($i=2; $i<=$x; $i++) {
            if($x%$i==0){
                if($n){
                    $factors[(count($factors))]=(-1*($x/$i));
                    $factors[(count($factors))]=($i);
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=(-1*$i);
                } else {
                    $factors[(count($factors))]=($x/$i);
                    $factors[(count($factors))]=($i);
                }
            }
        } //end for
       echo '(' . implode(',', $factors). ')';
    } //end if $x == 0
}
factor(-4);

$factors находится вне области действия функции, кроме того, что вы ничего не возвращали и не выводили. Видя, как вы эхо (0,0) Я предположил, что вы хотели это повторить, такие как (2,4,8) и т.д. Что вы можете сделать с взрыва..

Другие вопросы по тегам