PHP自定义函数getDivisors返回NULL无法输出约数数组问题排查
问题修复说明
错误点定位
你的猜测正确,代码的核心问题是函数未显式返回计算得到的约数数组:
PHP函数在没有写return语句的情况下,执行完成后默认返回NULL。你的代码中虽然已经把所有符合条件的约数存入了$divisors数组,但没有将该数组返回给调用方,因此调用函数拿到的结果就是NULL。
额外优化点:最好在循环前先初始化$divisors为空数组,避免传入非法参数(比如小于1的数字)时,PHP抛出变量未定义的警告。
修复后代码
function getDivisors($num) { // 先初始化数组,避免变量未定义警告 $divisors = []; for ($i=1; $i<=$num; $i++) { if ($num % $i == 0) { $divisors[] = $i; } } // 显式返回约数数组 return $divisors; }
调用验证示例
// 求12的约数 print_r(getDivisors(12)); // 输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 [5] => 12 )
内容的提问来源于stack exchange,提问作者Max Shkel
相关产品推荐
相关产品推荐

