Heim Backend-Entwicklung PHP-Tutorial Unerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion '85' anstelle von '8'?

Unerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion '85' anstelle von '8'?

Apr 01, 2025 am 06:12 AM
Warum

Unerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion

Detaillierte Erläuterung der rekursiven PHP -Funktion: Analyse der unerwarteten Ausgabe der Additionsfunktion

Dieser Artikel analysiert ein Beispiel für eine rekursive PHP -Funktion, um zu erklären, warum seine Ausgabeergebnisse nicht mit den Erwartungen übereinstimmen. Der Code ist wie folgt:

  Php
Funktion SD ($ A = 3, $ B = 2) {
   $ C = $ A $ B;
   if ($ c 
Nach dem Login kopieren
Nach dem Login kopieren

Die Funktion sd() akzeptiert zwei Parameter a und b , und die Standardwerte betragen 3 bzw. 2. Die Funktion berechnet die Summe von a und b und weist den Wert c . Wenn c weniger als 6 ist, rufen Sie sich rekursiv selbst an und bestehen Sie a und die neuen c -Werte als Parameter. Schließlich druckt die Funktion den Wert von c .

Nach der Ausführung sd() ist das Ausgabeergebnis eher "85" als die erwartete "8". Dies liegt daran, dass das Verständnis der Reihenfolge rekursiver Anrufe und der Ausführung echo -Anweisungen voreingenommen ist.

Der Programmausführungsprozess ist wie folgt:

  1. Der erste Aufruf von sd() heißt a=3 , b=2 , c = 3 2 = 5 . Da c , ruft sich die Funktion selbst rekursiv auf und die Parameter werden zu <code>sd(3, 5) .
  2. Bei rekursiven Aufrufen a=3 , b=5 , c = 3 5 = 8 . Zu diesem Zeitpunkt endet c >= 6 . echo $c; Druck 8.
  3. Das Programm kehrt zu dem Ort zurück, an dem der erste Anruf sd() aufgerufen wird. echo $c; druckt den c -Wert beim ersten Anruf, der 5 ist.

Daher ist die endgültige Ausgabe "85". Es ist nicht so, dass die Variable c nicht überschrieben ist, sondern dass die echo -Anweisung am Ende der Funktion liegt und jedes Mal ausgeführt wird, wenn das rekursive endet, was zu zwei Drucken führt.

Um das Ergebnis "8" zu erhalten, müssen Sie die Funktionslogik ändern, z. B. die echo -Anweisung in if -bedingte Anweisung oder das Endergebnis nur am Ende der Rekursion drucken. Der geänderte Code kann wie folgt sein:

  Php
Funktion SD ($ A = 3, $ B = 2) {
   $ C = $ A $ B;
   if ($ c 
Nach dem Login kopieren
Nach dem Login kopieren

Diese geänderte Version verwendet die return , um den Wert von c zurückzugeben, um sicherzustellen, dass das Endergebnis erst gedruckt wird, nachdem die Rekursion vorbei ist.

Das obige ist der detaillierte Inhalt vonUnerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion '85' anstelle von '8'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1677
14
PHP-Tutorial
1280
29
C#-Tutorial
1257
24
Schritte zum Hinzufügen und Löschen von Feldern zu MySQL -Tabellen Schritte zum Hinzufügen und Löschen von Feldern zu MySQL -Tabellen Apr 29, 2025 pm 04:15 PM

Fügen Sie in MySQL Felder mit alterTabletable_nameaddcolumnNew_columnvarchar (255) nach oben nachzusteuern. Beim Hinzufügen von Feldern müssen Sie einen Speicherort angeben, um die Abfrageleistung und die Datenstruktur zu optimieren. Vor dem Löschen von Feldern müssen Sie bestätigen, dass der Betrieb irreversibel ist. Die Änderung der Tabellenstruktur mithilfe von Online-DDL, Sicherungsdaten, Testumgebungen und Zeiträumen mit niedriger Last ist die Leistungsoptimierung und Best Practice.

Was ist der Unterschied zwischen PHP -Framework Laravel und Yii Was ist der Unterschied zwischen PHP -Framework Laravel und Yii Apr 30, 2025 pm 02:24 PM

Die Hauptunterschiede zwischen Laravel und YII sind Designkonzepte, funktionale Eigenschaften und Nutzungsszenarien. 1. Laravel konzentriert sich auf die Einfachheit und das Vergnügen der Entwicklung und bietet reichhaltige Funktionen wie eloquentorm und handwerkliche Werkzeuge, die für schnelle Entwicklung und Anfänger geeignet sind. 2.YII betont Leistung und Effizienz, eignet sich für Hochlastanwendungen und bietet effiziente Activerecord- und Cache-Systeme, verfügt jedoch über eine steile Lernkurve.

Wie verarbeitet man Sensordaten in C? Wie verarbeitet man Sensordaten in C? Apr 28, 2025 pm 10:00 PM

C eignet sich aufgrund seiner hohen Leistungs- und Kontrollfunktionen auf niedriger Ebene für die Verarbeitung von Sensordaten. Spezifische Schritte umfassen: 1. Datenerfassung: Daten über die Hardware -Schnittstelle erhalten. 2. Datenanalyse: Umwandeln Sie die Originaldaten in verfügbare Informationen. 3.. Datenverarbeitung: Filterung und Glättungsverarbeitung. 4. Datenspeicher: Speichern Sie Daten in einer Datei oder Datenbank. 5. Echtzeitverarbeitung: Stellen Sie die effiziente und geringe Latenz des Codes sicher.

Uniswap On-Chain-Rückzug Uniswap On-Chain-Rückzug Apr 30, 2025 pm 07:03 PM

UNISWAP -Benutzer können Token aus Liquiditätspools zu ihren Geldbörsen abheben, um die Sicherheit und Liquidität von Vermögenswerten zu gewährleisten. Der Prozess erfordert Gasgebühren und wird durch Netzwerküberlastung beeinflusst.

Warum können einige Websites Maus -Scrollen- und Penetrationseffekt erzielen, während andere nicht? Warum können einige Websites Maus -Scrollen- und Penetrationseffekt erzielen, während andere nicht? Apr 30, 2025 pm 03:03 PM

Wenn Sie das Implementierungsprinzip von Maus -Scroll -Ereignissen beim Surfen einiger Websites untersuchen, können Sie feststellen, dass einige Seitenelemente immer noch das Scrollen der gesamten Seite ermöglichen, wenn die Maus schwebt ...

Der Top5 des sichersten Austauschs im Jahr 2025: Black U's Leitfaden zur Vermeidung von Gruben, die Regel von 100% der Mittel, um Leben zu retten Der Top5 des sichersten Austauschs im Jahr 2025: Black U's Leitfaden zur Vermeidung von Gruben, die Regel von 100% der Mittel, um Leben zu retten May 08, 2025 pm 08:27 PM

Im Bereich des Kryptowährungshandels stand die Sicherheit des Austauschs immer im Mittelpunkt der Benutzer. Im Jahr 2025, nach jahrelanger Entwicklung und Entwicklung, stechen einige Börsen mit ihren herausragenden Sicherheitsmaßnahmen und Benutzererfahrungen ab. In diesem Artikel werden die fünf sichersten Börsen im Jahr 2025 vorgestellt und praktische Anleitungen zur Vermeidung von Black U (Hacker -Angriffsnutzer) bereitgestellt, um sicherzustellen, dass Ihre Mittel zu 100% sicher sind.

So wählen Sie eine konforme und sichere Bitcoin -Handelsplattform aus So wählen Sie eine konforme und sichere Bitcoin -Handelsplattform aus Apr 28, 2025 pm 05:42 PM

Bei der Auswahl einer konformen und sicheren Bitcoin -Handelsplattform müssen Sie ihre Regulierungslizenz, KYC/AML -Richtlinien und -Teaktionen bewerten und drei Hauptplattformen empfehlen: Binance, OKX und Gate.io.

Laravel E-Commerce-Systempraxis: Produktmanagement-Zahlungsintegration Laravel E-Commerce-Systempraxis: Produktmanagement-Zahlungsintegration Apr 30, 2025 pm 02:21 PM

Laravel eignet sich für die Entwicklung von E-Commerce-Systemen, da es schnell effiziente Systeme aufbauen und eine künstlerische Entwicklungserfahrung bieten kann. 1) Das Produktmanagement realisiert den CRUD -Betrieb und die Klassifizierungsvereinigung durch eloquentorm. 2) Die Zahlungsintegration behandelt Zahlungsanfragen und Ausnahmen über die Stripe -API, um die Sicherheit und Zuverlässigkeit des Zahlungsprozesses sicherzustellen.

See all articles