Какая-то ошибка в выводе функции PHP, которую я не могу понять

#php #function

Вопрос:

Есть проблема с уроком «использование функций». Код внутри функции (когда он помещен вне функции; возвращает массив) кажется правильным, но функция выводит значение NULL. Вот как это выглядит. Укажите, пожалуйста, где я поступаю неправильно.

 function getDivisors($num)
       {
         for ($i=1; $i<=$num; $i  )
           {
             if ($num % $i == 0)
               {
                 $divisors[] = $i;
               }
           }
        }
 

Я предполагаю, что вывод в массив неверен, но… это все еще неуверенно.

Комментарии:

1. Похоже, вы забыли return массив из функции

2. P. s. покажите нам, как вы вызываете функцию, для контекста

3. Большое спасибо! Функция является частью упражнения, которое требует ее использования в функциях getCommonDivisors($num1,$num2), например: $result[] = array_intersect(getDivisors($num1), getDivisors($num2)); Поэтому все это начинается с нуля в качестве переменных.

Ответ №1:

Ваша функция возвращает значение null, потому что вы не вернули свой массив.

Измените свою функцию следующим образом :

 function getDivisors($num) {
  for ($i=1; $i<=$num; $i  ) {
     if ($num % $i == 0) {
        $divisors[] = $i;
     }
  }
  return $divisors;
}
 

Комментарии:

1. Моя огромная благодарность. Похоже, в этой теме для меня было много подводных камней.