


Unerwartete Ausgabe der Rekursivfunktion von PHP: Warum druckt eine einfache Additionsfunktion '85' anstelle von '8'?
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
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

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

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

Undress AI Tool
Ausziehbilder kostenlos

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

Die Hauptgründe, warum Sie sich bei MySQL nicht als Root anmelden können, sind Berechtigungsprobleme, Konfigurationsdateifehler, Kennwort inkonsistent, Socket -Dateiprobleme oder Firewall -Interception. Die Lösung umfasst: Überprüfen Sie, ob der Parameter Bind-Address in der Konfigurationsdatei korrekt konfiguriert ist. Überprüfen Sie, ob die Root -Benutzerberechtigungen geändert oder gelöscht und zurückgesetzt wurden. Stellen Sie sicher, dass das Passwort korrekt ist, einschließlich Fall- und Sonderzeichen. Überprüfen Sie die Einstellungen und Pfade der Socket -Dateiberechtigte. Überprüfen Sie, ob die Firewall Verbindungen zum MySQL -Server blockiert.

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

Es ist unmöglich, das MongoDB -Passwort direkt über Navicat anzuzeigen, da es als Hash -Werte gespeichert ist. So rufen Sie verlorene Passwörter ab: 1. Passwörter zurücksetzen; 2. Überprüfen Sie die Konfigurationsdateien (können Hash -Werte enthalten). 3. Überprüfen Sie Codes (May Hardcode -Passwörter).

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

Der Schlüssel zur eleganten Installation von MySQL liegt darin, das offizielle MySQL -Repository hinzuzufügen. Die spezifischen Schritte sind wie folgt: Laden Sie den offiziellen GPG -Schlüssel von MySQL herunter, um Phishing -Angriffe zu verhindern. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting

CentOS wird 2024 geschlossen, da seine stromaufwärts gelegene Verteilung RHEL 8 geschlossen wurde. Diese Abschaltung wirkt sich auf das CentOS 8 -System aus und verhindert, dass es weiterhin Aktualisierungen erhalten. Benutzer sollten eine Migration planen, und empfohlene Optionen umfassen CentOS Stream, Almalinux und Rocky Linux, um das System sicher und stabil zu halten.

Der Kill -Befehl in MySQL schlägt manchmal aufgrund des besonderen Status des Prozesses und des unsachgemäßen Signalpegels fehl. Zu den Methoden zur effektiven Beendigung des MySQL -Prozesses gehören: Bestätigung des Prozessstatus, Verwenden des Befehls von MySQLadmin (empfohlen), mithilfe von Kill -9 mit Vorsicht, Überprüfung der Systemressourcen und eingehender Fehlerbehebung von Fehlerprotokollen.

Zusammenfassung: Navicat kann SQLite -Passwörter nicht anzeigen, da: SQLite keine herkömmlichen Kennwortfelder enthält. Die Sicherheit von SQLite hängt von der Steuerung des Dateisystems an. Wenn das Dateikennwort vergessen wird, kann es nicht abgerufen werden (es sei denn, die Datenbank ist verschlüsselt, ist der Schlüssel erforderlich).
