Теперь лучше? PHP: $test = array (5,'a',5); function summ_array ($array){ $rezult = false; if (is_array($array)){ foreach ($array as $value){ if (is_numeric($value)){ $rezult = $rezult + $value; } else { $rezult=false; break; } } } return $rezult; } if (summ_array($test)==false){ print 'false';} else{ print summ_array($test); }
Да, только никак не пойму, почему ты $result через "z" пишешь, хотя я везде через "s" писал. Думаешь, я ошибку постоянно делал?
Как и множество других учебных задач. Тут как бы задача не array_sum заюзать, а научить человека работать с циклами, условиями, прерываниями. Так что задача как задача.
Если еще актуально. PHP: <?php $arr = [5,5,17]; $arr_a = [5,5,4,88]; $arr_b = [5.3,8.6]; $arr_c = []; function summ(&$arr){ $arr_sum = 0; if (!is_array($arr)) { echo 'Некорректный массив!'; return; } if (count($arr)==0) { echo 'Некорректный массив!'; return; } if (is_numeric($arr)) { echo 'Некорректный массив!'; return; } for ($i=0; $i <count($arr) ; $i++) { $arr_sum += $arr[$i]; } echo 'Сумма элементов массива равна = '.$arr_sum; } echo summ($arr).'<br>'; echo summ($arr_a).'<br>'; echo summ($arr_b).'<br>'; echo summ($arr_c).'<br>'; ?>
@pro100blich, в условии задачи было "возвращает", а не "выводит" --- Добавлено --- Ну и is_numeric не принимает массивы
@mkramer, "а возвращает сумму его элементов". Может я что то не догоняю. Возвращает и выводит это как бы одно и тоже. 5+5 возвратит нам 10 или же, сумма 5+5 выведет на экран 10. Конечный результат остается 10. Так же и тут. Если не прав то поподробнее. --- Добавлено --- @Valick моно сразу ошибки, что бы их в дальнейшем не было.
В контексте функции - совсем разные вещи. Возвратить - значит использовать return, и позволить вызывающему коду делать с результатом работы функции, что заблагорассудится.