0

我可能在这里遗漏了一些简单的东西,但我有这个函数可以找到一个数字的因数。

 function factor($n){
 $factors_array = array();
 for ($x = 1; $x <= sqrt(abs($n)); $x++)
 {
    if ($n % $x == 0)
    {
        $z = $n/$x; 
        array_push($factors_array, $x, $z);
       }
   }
   return $factors_array;
 }

然后我想做这样的事情......

factor(120);
print_r($factors_array);

这给了我任何东西。关于我哪里出错的任何想法?

4

2 回答 2

2

您没有将变量分配给函数的返回值。就 PHP 解释器而言,$factors_array仅当您在函数内部时才存在。factor()尝试这个:

$factors_array = factor(120);
print_r($factors_array);

然后你可以在代码的其他区域重用$factors_array

查看此页面以了解为什么会发生这种情况。

于 2013-07-15T01:19:18.267 回答
0

试试这个:

print_r(factor(120));

因为你不能访问 $factors_array; 在函数之外,这称为变量的范围,通常,在函数内部定义的变量在外部不可用,而且在函数外部定义的变量在函数内部不可用......

阅读更多变量范围¶

于 2013-07-15T01:19:49.120 回答