Heim  >  Artikel  >  Backend-Entwicklung  >  Wie schreibe ich eine Funktion in PHP, die ein Array eingibt und summiert?

Wie schreibe ich eine Funktion in PHP, die ein Array eingibt und summiert?

PHPz
PHPzOriginal
2023-04-23 09:16:16701Durchsuche

In der PHP-Entwicklung sind Arrays oft eine der Hauptdatenstrukturen, die wir zur Datenmanipulation verwenden. Wenn wir jedoch große Mengen an Array-Daten verarbeiten, müssen wir häufig numerische Operationen daran durchführen, beispielsweise eine Summierung. In diesem Artikel erfahren Sie, wie Sie eine PHP-Funktion schreiben, die Arrays summiert.

  1. Verstehen Sie die Bedeutung und Anforderungen der Frage

Bevor wir die PHP-Summenfunktion verwenden, müssen wir die spezifischen Anforderungen und Verwendungsszenarien der Funktion ermitteln. In diesem Artikel muss unsere Array-Summenfunktion die folgenden Anforderungen erfüllen: Die

  • -Funktion kann ein Array als Parameter empfangen; die
  • -Funktion kann eine Summenoperation für alle Elemente im Array durchführen; das Summierungsergebnis;
  • Die Funktion muss sicherstellen, dass das Eingabearray numerische Daten enthält.
  • Basierend auf den oben genannten Anforderungen können wir zunächst einfachen Pseudocode schreiben:
function array_sum($arr) {
  // 数组求和逻辑
  return $sum;
}

Array-Summationslogik implementieren
  1. Als nächstes müssen wir darüber nachdenken, wie wir die Array-Summationslogik implementieren. Die herkömmliche Methode besteht darin, jedes Element im Array mit einer Schleife hinzuzufügen. Der Code lautet wie folgt:
function array_sum($arr) {
  $sum = 0;
  foreach ($arr as $num) {
    $sum += $num;
  }
  return $sum;
}

Codeerklärung:

Zuerst definieren wir eine Variable $sum, um die Summe zu speichern Ergebnis;
  • Dann verwenden wir foreach, um jedes Element $num im Array zu durchlaufen $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
  • Im Schleifenkörper fügen wir $num hinzu; code> zu <code>$sum;
    Schließlich geben wir das Summierungsergebnis $sum zurück.
    1. Eingabevalidierung hinzufügen

      🎜Der obige Code gilt jedoch nur, wenn alle Elemente im Eingabearray numerisch sind. Wenn das Eingabearray nicht numerische Daten enthält, gibt der Code einen Fehler aus und die Funktion funktioniert nicht ordnungsgemäß. Für einen robusteren und robusteren Code müssen wir eine Eingabevalidierung hinzufügen. 🎜🎜Die spezifische Implementierung besteht darin, Eingabeüberprüfungslogik in den Schleifenkörper einzufügen und eine Ausnahme auszulösen, wenn der Eingabefehler auftritt: 🎜rrreee🎜Code-Erklärung: 🎜🎜🎜Wir verwenden zur Bestimmung die Funktion is_numeric() die Array-Elemente$num ein numerischer Typ ist; 🎜🎜Wenn $num kein numerischer Typ ist, lösen wir eine InvalidArgumentException-Ausnahme und eine Eingabeaufforderung aus eine Fehlermeldung; 🎜🎜 Wenn $num numerisch ist, fügen wir es zu $sum hinzu. 🎜🎜Abschließend geben wir das Summierungsergebnis $sum zurück >. 🎜🎜
        🎜Rückgabetypdeklaration hinzufügen🎜🎜🎜Schließlich können wir dem Funktionscode noch eine Rückgabetypdeklaration hinzufügen, um das Lesen und die Codeüberprüfung zu erleichtern: 🎜rrreee🎜Codeerklärung: 🎜🎜🎜 Zuerst Wir fügen der Funktion eine Rückgabetypdeklaration hinzu, um den Typ des Funktionsrückgabewerts anzugeben. 🎜🎜Die Rückgabetypdeklaration besteht aus zwei Teilen: dem Datentyp nach dem Doppelpunkt float und der Deklaration vor der Funktion Parameterliste array; 🎜🎜Im Code verwenden wir array, um die Parameter der Funktion zu deklarieren. $arr muss ein Array-Typ sein. 🎜🎜Bei jedem erfolgreichen Scan akkumulieren wir es in $sum. 🎜🎜Schließlich geben wir das Summierungsergebnis $sum zurück. 🎜🎜🎜🎜Zusammenfassung🎜🎜🎜Es ist ersichtlich, dass das Schreiben einer PHP-Funktion, die eine Array-Summe ausführt, syntaktisch relativ einfach ist. Wir müssen nur das Problem verstehen, über die Logik nachdenken und je nach Bedarf und Szenario eine Eingabeüberprüfung und Rückgabetypdeklaration hinzufügen, und schon können wir schnell eine robuste und effiziente PHP-Array-Summenfunktion implementieren. 🎜

    Das obige ist der detaillierte Inhalt vonWie schreibe ich eine Funktion in PHP, die ein Array eingibt und summiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn