


Unerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion '85' anstelle von '8'?
Apr 01, 2025 am 06:12 AMDetaillierte 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
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:
- Der erste Aufruf von
sd()
hei?ta=3
,b=2
,c = 3 2 = 5
. Dac , ruft sich die Funktion selbst rekursiv auf und die Parameter werden zu <code>sd(3, 5)
. - Bei rekursiven Aufrufen
a=3
,b=5
,c = 3 5 = 8
. Zu diesem Zeitpunkt endetc >= 6
.echo $c;
Druck 8. - Das Programm kehrt zu dem Ort zurück, an dem der erste Anruf
sd()
aufgerufen wird.echo $c;
druckt denc
-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
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!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Heute werden wir Ihnen einen versteckten Schatz offenbaren - eine Plattform, die einen kostenlosen Comic -App -Eingang bietet, mit dem Sie den Ozean der Comics leicht genie?en und den Spa? am Lesen genie?en k?nnen. Diese Plattform ist nicht nur ein einfacher Eingang, sondern eher wie eine fürsorgliche Anleitung. Es bringt verschiedene Arten von Comic -Apps zusammen. Egal, ob Sie ein loyaler Fan von hei?blütigen Jungen, ein Fan von romantischen M?dchen-Comics oder ein Fan von Spannungs- und Mystery-Comics sind, Sie finden eine App, die hier Ihren Bedürfnissen entspricht. Noch wichtiger ist, dass diese Apps versprechen, ein kostenloses Leseerlebnis zu bieten

Der Grund, warum der Editor nach dem Aktualisieren des VSCODE -Plugins abstürzt, ist, dass das Plugin mit Kompatibilit?tsproblemen mit vorhandenen Versionen von VSCODE oder anderen Plugins Probleme auftritt. Zu den L?sungen geh?ren: 1. Deaktivieren Sie das Plug-In, um Probleme nacheinander zu beheben; 2. Die Problem-Plug-In in die vorherige Version herabstufen; 3. Finden Sie alternative Plug-Ins; 4. Halten Sie VSCODE und Plug-in aktualisiert und führen Sie ausreichende Tests durch. 5. Richten Sie die automatische Sicherungsfunktion ein, um den Datenverlust zu verhindern.

Es gibt drei M?glichkeiten, die MySQL-Datenbank einzugeben: 1. Melden Sie sich über die Befehlszeile an, geben Sie "MySQL-U Benutzername-P" ein und geben Sie das Passwort ein, wie aufgefordert. 2. Verwenden Sie MySQLWorkbench, um eine neue Verbindung zu erstellen und relevante Informationen einzugeben. 3. Melden Sie sich durch die Python -Programmiersprache an und verwenden Sie die MySQL.Connector -Bibliothek, um eine Verbindung zur Datenbank herzustellen.

Zwei Methoden und Vorsichtsma?nahmen zum Herunterladen von Binance auf Android -Telefonen: 1. Laden Sie die APK -Datei über die offizielle Website herunter: Besuchen Sie die offizielle Website von Binance www.binance.com, klicken Sie auf "Android APK Download" und erm?glichen Sie die Installationsberechtigung der "unbekannten Quelle" Ihres Telefons, bevor Sie die Installation abschlie?en. 2. Download über einen Drittanbieter-Anwendungsgesch?ft: W?hlen Sie einen vertrauenswürdigen Store aus, um nach "Binance" zu suchen, die Entwicklerinformationen zu best?tigen und herunterzuladen und zu installieren. Stellen Sie sicher, dass Sie die App aus offiziellen Kan?len erhalten, die überprüfung der Zwei-Faktor-Best?tigung aktivieren, die Passw?rter regelm??ig ?ndern und auf Phishing-Websites aufmerksam machen, um Ihre Kontosicherheit zu gew?hrleisten.

VSCODE wurde ausgew?hlt, um Springboot -Projekte aufgrund seiner leichten, Flexibilit?t und leistungsstarken Expansionsfunktionen zu entwickeln. Insbesondere 1) Stellen Sie sicher, dass die Umgebung korrekt konfiguriert ist, einschlie?lich der Installation von Javajdk und Maven; 2) SpringBooteXTesionPack verwenden, um den Entwicklungsprozess zu vereinfachen. 3) Konfigurieren Sie die Abh?ngigkeiten und Konfigurationsdateien für Springboot manuell, für die ein tiefes Verst?ndnis von Springboot erforderlich ist. 4) Verwenden Sie die Debugging- und Leistungsanalyse -Tools von VSCODE, um die Entwicklungseffizienz zu verbessern. Obwohl eine manuelle Konfiguration erforderlich ist, bietet VSCODE ein hohes Ma? an benutzerdefiniertem Platz und Flexibilit?t.

Da XRP -Preistrends weiterhin die Aufmerksamkeit der Markt auf sich ziehen, haben Beobachter auch ihre Aufmerksamkeit auf aufstrebende Kryptoprojekte wie Jetbolt (Jbolt) gerichtet. Obwohl sich die meisten Analysten auf die neuesten XRP-Preisprognosen konzentrieren, werden viele Menschen von der herausragenden Leistung von Jetbolt (Jbolt) in der Vorverkaufsphase angezogen. Die Vorverk?ufe gehen schnell vor und die neuesten verkauften 357 Millionen Token sind ein starker Beweis. Jetbolt verfügt über eine Reihe von modernsten Funktionen wie Null-Gas-Handelstechnologie. Kann das helfen, es zu steigen? Wird die SEC-Follow-up-Handhabung des Ripple Case gleichzeitig den XRP-Preis zum Anstieg treiben? Hier finden Sie die neueste Analyse von Jetbolt-Pre-Sales- und XRP-Preistrends. XRP -Preisausblick: s

Die M?glichkeit, alle Datenbanken in MongoDB anzuzeigen, besteht darin, den Befehl "showdbs" einzugeben. 1. Dieser Befehl zeigt nur nicht leere Datenbanken an. 2. Sie k?nnen die Datenbank über den Befehl "Verwendung" wechseln und Daten einfügen, damit sie angezeigt werden. 3. Achten Sie auf interne Datenbanken wie "Lokal" und "Konfiguration". 4. Bei Verwendung des Treibers müssen Sie die Methode "ListDatabases ()" verwenden, um detaillierte Informationen zu erhalten. 5. Der Befehl "db.stats ()" kann detaillierte Datenbankstatistiken anzeigen.

Der Hauptgrund für die Integration von Oracle-Datenbanken in Hadoop besteht darin, die leistungsstarken Datenverwaltungs- und Transaktionsverarbeitungsfunktionen von Oracle sowie die gro? angelegten Datenspeicher- und Analysefunktionen von Hadoop zu nutzen. Zu den Integrationsmethoden geh?ren: 1. Exportdaten von OracleBigDataconnector nach Hadoop; 2. Verwenden Sie Apachesqoop für die Datenübertragung; 3.. Lesen Sie Hadoop -Daten direkt durch die externe Tabellenfunktion von Oracle. 4. Verwenden Sie OracleGoldeGate, um die Datensynchronisation zu erreichen.
