Я пытался создать программу для создания синтетического деления, которая требует факторизации, поэтому я написал эту функцию для вычисления целого числа, которое работает, но оно никогда не изменяет значения массива php $ факторов. Любая помощь будет принята с благодарностью.Невозможно изменить значения массива PHP
$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);
Где возвращение? они меняются, но вы ничего не возвращаете. И ваш массив '$ factor' находится за пределами области функций. – ArtisticPhoenix
Это потому, что '$ factor' находится вне функции. если вы хотите прямо изменить его в функции, не возвращая ее или не передавая адрес памяти, вам нужно использовать ['global'] (http://php.net/language.variables.scope) в функции для управления ее scopre –
глобальный настолько уродливый .... – ArtisticPhoenix