>백엔드 개발 >PHP 문제 >배열을 입력하고 합산하는 함수를 PHP에서 작성하는 방법

배열을 입력하고 합산하는 함수를 PHP에서 작성하는 방법

PHPz
PHPz원래의
2023-04-23 09:16:16786검색

PHP 개발에서 배열은 데이터를 조작하는 데 사용하는 주요 데이터 구조 중 하나인 경우가 많습니다. 그러나 대량의 배열 데이터를 처리할 때는 합산과 같은 수치 연산을 수행해야 하는 경우가 많습니다. 이 기사에서는 배열을 합하는 PHP 함수를 작성하는 방법을 설명합니다.

  1. 질문의 의미와 요구 사항을 이해하세요

PHP sum 함수를 사용하기 전에 함수의 구체적인 요구 사항과 사용 시나리오를 결정해야 합니다. 이 문서에서 배열 합계 함수는 다음 요구 사항을 충족해야 합니다.

  • 함수는 배열을 매개 변수로 받을 수 있습니다.
  • 함수는 배열의 모든 요소에 대해 합계 연산을 수행할 수 있습니다.
  • 함수는 입력 배열에 숫자 데이터가 포함되어 있는지 확인해야 합니다.
  • 위의 요구 사항을 기반으로 먼저 간단한 의사 코드를 작성할 수 있습니다.
function array_sum($arr) {
  // 数组求和逻辑
  return $sum;
}

배열 합산 논리 구현
  1. 다음으로 배열 합산 논리를 구현하는 방법에 대해 생각해야 합니다. 일반적인 방법은 루프를 사용하여 배열의 각 요소를 추가하는 것입니다. 코드는 다음과 같습니다.
function array_sum($arr) {
  $sum = 0;
  foreach ($arr as $num) {
    $sum += $num;
  }
  return $sum;
}

코드 설명:

먼저 누적된 값을 저장하기 위해 $sum 변수를 정의합니다.
  • 그런 다음 foreach를 사용하여 배열의 각 요소 $num를 반복합니다. $sum 来保存累加结果;
  • 然后,我们使用 foreach 循环遍历数组中的每个元素 $num
  • 在循环体内,我们将 $num 加到 $sum 中;
  • 最后,我们返回求和结果 $sum
  1. 添加输入校验

然而,以上代码仅适用于输入数组中的所有元素都是数值型的情况。如果输入的数组中含有非数值型数据,那么代码将抛出错误,函数将无法正常工作。为了更加稳健和健壮的代码,我们需要添加输入校验。

具体实现是在循环体内加入输入校验逻辑,并在输入出错时抛出异常:

function array_sum($arr) {
  $sum = 0;
  foreach ($arr as $num) {
    if (!is_numeric($num)) {
      throw new InvalidArgumentException('Input array must contain numeric elements only');
    }
    $sum += $num;
  }
  return $sum;
}

代码解释:

  • 我们使用 is_numeric() 函数来判断数组元素 $num 是否为数值型;
  • 如果 $num 不是数值型,我们抛出一个 InvalidArgumentException 异常,并提示错误信息;
  • 如果 $num 是数值型,我们将其加到 $sum 中;
  • 最后,我们返回求和结果 $sum
  1. 添加返回类型声明

最后,我们可以进一步为函数代码加入返回类型声明,以方便更好的阅读和代码审查:

function array_sum(array $arr) : float {
  $sum = 0;
  foreach ($arr as $num) {
    if (!is_numeric($num)) {
      throw new InvalidArgumentException('Input array must contain numeric elements only');
    }
    $sum += $num;
  }
  return $sum;
}

代码解释:

  • 首先,我们为函数添加了一个返回类型声明,来指明函数返回值的类型;
  • 返回类型声明包括两部分:冒号后面的数据类型 float,以及函数参数列表前的声明 array
  • 在代码中,我们使用 array 来声明函数的参数 $arr 必须为数组类型;
  • 每次成功扫描到一个数值型元素后,我们将其累加到 $sum 中;
  • 最后,我们返回求和结果 $sum
  • 루프 본문에 $num을 추가합니다. code>를 <code>$sum으로;
    마지막으로 합산 결과 $sum을 반환합니다.
    1. 입력 유효성 검사 추가

      🎜그러나 위 코드는 입력 배열의 모든 요소가 숫자인 경우에만 적용됩니다. 입력 배열에 숫자가 아닌 데이터가 포함되어 있으면 코드에서 오류가 발생하고 함수가 제대로 작동하지 않습니다. 보다 강력하고 견고한 코드를 위해서는 입력 유효성 검사를 추가해야 합니다. 🎜🎜구체적인 구현은 루프 본문에 입력 확인 로직을 추가하고 입력 오류가 발생할 때 예외를 발생시키는 것입니다: 🎜rrreee🎜코드 설명: 🎜🎜🎜우리는 is_numeric() 함수를 사용하여 확인합니다. 배열 요소$num가 숫자 유형인지 여부 🎜🎜$num가 숫자 유형이 아닌 경우 InvalidArgumentException 예외가 발생하고 프롬프트가 표시됩니다. 🎜🎜 $num이 숫자이면 $sum에 추가합니다. 🎜🎜마지막으로 합계 결과 $sum를 반환합니다. >. 🎜🎜
        🎜반환 유형 선언 추가🎜🎜🎜마지막으로 더 나은 읽기 및 코드 검토를 용이하게 하기 위해 함수 코드에 반환 유형 선언을 추가할 수 있습니다. 🎜rrreee🎜코드 설명: 🎜🎜🎜 먼저, 함수 반환 값의 유형을 나타내기 위해 함수에 반환 유형 선언을 추가합니다. 🎜🎜반환 유형 선언에는 콜론 float 뒤의 데이터 유형과 함수 매개변수 앞의 선언이라는 두 부분이 포함됩니다. list array; 🎜🎜코드에서는 array를 사용하여 함수의 매개변수를 선언합니다. 🎜 🎜모든 성공적인 스캔은 숫자 요소에 도달한 후 이를 $sum에 누적합니다. 🎜🎜마지막으로 합계 결과 $sum을 반환합니다. 🎜🎜🎜🎜요약🎜🎜🎜배열 합계를 수행하는 PHP 함수를 작성하는 것이 구문적으로 비교적 간단하다는 것을 알 수 있습니다. 문제를 이해하고, 논리에 대해 생각하고, 필요와 시나리오에 따라 입력 확인과 반환 유형 선언을 추가하기만 하면 강력하고 효율적인 PHP 배열 합계 함수를 신속하게 구현할 수 있습니다. 🎜

    위 내용은 배열을 입력하고 합산하는 함수를 PHP에서 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.