


Von 'gemischt' bis `void`: Ein praktischer Leitfaden für PHP -Rückgabetypdeklarationen
Rückgabetypen in PHP verbessern die Codezuverlässigkeit und Klarheit, indem angeben, was eine Funktion zurückgeben muss. 2. Verwenden Sie grundlegende Typen wie Zeichenfolge, Array oder DateTime, um die korrekten Rückgabeteile durchzusetzen und Fehler frühzeitig zu fangen. 3.. Nullable Typen anwenden mit? (zB,? String) Wenn Null ein gültiger Rückgabewert ist. Void. Verwenden Sie void für Funktionen, die Aktionen ohne Daten ausführen, um nur die Rückgabe zu ermöglichen. oder keine Rückgabeerklärung. 5. Hebel -Gewerkschaftstypen (z. B. String | int | bool) in PHP 8.0 für Funktionen, die mehrere verschiedene Typen zurückgeben. 6. Bevorzugen Sie explizite Rückgabetypdeklarationen gegenüber implizitem gemischt, um die Unterstützung und die Wartbarkeit der IDE zu verbessern. 7. Vermeiden Sie die Überbeanspruchung von Gewerkschaftstypen und gemischte, gemischte Mischung für Fälle, in denen jeder Typ wirklich erwartet wird. 8. Bearbeiten Sie die internen PHP -Funktionen sorgfältig, indem Sie die Rückgabetypen mit ihrem Verhalten ausrichten, z. 9. Kehren Sie Null nicht in void -Funktionen zurück, um Verwirrung zu verhindern, obwohl dies technisch zulässig ist. 10. Übernehmen Sie die Rückgabetypen zunehmend, beginnend mit Kernlogik und APIs, um Code vorhersehbarer und weniger fehleranfälliger zu gestalten und gleichzeitig die Lesbarkeit und Absicht beizubehalten.
Das Typ -System von PHP hat sich seit seinen frühen Tagen erheblich weiterentwickelt, und die Rückgabetypdeklarationen sind ein Eckpfeiler für das Schreiben von vorhersehbarerem und wartbareren Code. Wenn Sie jemals mit locker getippten PHP -Funktionen gearbeitet haben - Returning -Saiten, Arrays oder null
ohne klaren Vertrag -, sind Sie wahrscheinlich auf Fehler begegnet, die schwer zu verfolgen waren. Hier kommen Rückkehrtypen ins Spiel.

Ausgehend von PHP 7.0 können Sie jetzt angeben, wie eine Funktion zurückkehren soll, und dabei sowohl die Engine als auch Ihre Teamkollegen dabei helfen, die Absicht Ihres Codes zu verstehen. Dieser Leitfaden führt Sie davon ab, keine Typen ( mixed
, wenn auch nicht immer explizit) zu verwenden, um void
mit praktischen Beispielen und Best Practices zu umarmen.
Warum Rückgabetypen wichtig sind
Bevor Sie in die Syntax eintauchen, lohnt es sich, zu verstehen, warum Rückkehrtypen helfen:

- Fang Bugs früh : zurückgeben ein Array, wenn Sie eine Zeichenfolge erwarten? PHP wirft einen Typeerror.
- Verbesserung der Code -Lesbarkeit : Jeder, der Ihre Funktion liest, weiß, was sich erwarten kann.
- Aktivieren Sie eine bessere IDE -Unterstützung : Autokaponetion, Refactoring und Inline -Dokumente werden genauer.
- Ermutigen Sie das absichtliche Design : Sie denken härter darüber nach, was Ihre Funktion zurückkehren soll .
Ohne Rückgabetypen ist alles effektiv mixed
- ein Wert jeglicher Art. Dies führt zwar flexibel, was zu Unsicherheit führt. Rückgabetypen lassen Sie das eingrenzen.
Grundlegende Rückgabetypen: Von Saiten zu Objekten
Sie können Rückgabetypen für alle gemeinsamen Typen deklarieren:

Funktion getUnername (): String { zurück "Alice"; } Funktion getUserData (): Array { return ['name' => 'alice', 'age' => 30]; } function createdatetime (): dateTime { neue datetime () zurückgeben; }
Wenn Sie den Vertrag brechen:
Funktion getUnername (): String { null zurückkehren; // Fataler Fehler: Der Rückgabewert muss von Typ String sein, null zurückgegeben }
Es sei denn, Sie erlauben null
explizit mit einem nullablen Typ:
Funktion getUnername ():? String { null zurückkehren; // Das ist jetzt gültig }
Der ?
Präfix bedeutet "dieser Typ oder NULL".
Wann zu verwenden void
: Funktionen, die nichts zurückgeben
Verwenden Sie void
, wenn eine Funktion eine Aktion ausführt, aber keine aussagekräftigen Daten zurückgibt - wie Protokollierung, Drucken oder Ändern des Zustands.
Funktion logMessage (String $ Message): void { Datei_put_Contents ('log.txt', $ message. php_eol, File_Append); // Keine Rückgabeerklärung erforderlich }
Oder mit einer expliziten return;
:
Funktion abortifnotadmin (Benutzer $ user): void { if (! $ user-> isadmin ()) { sterben ('Zugang verweigert'); } zurückkehren; // optional, aber erlaubt }
Schlüsselregeln für void
:
- Sie können keinen Wert zurückgeben:
return 5;
→ tödlicher Fehler. -
return;
ohne Wert ist erlaubt (wie nicht zurückgegeben). -
null
ist auch kein gültiger Rückgabewert.
Dies erzwingt die Idee: "Diese Funktion macht etwas, gibt Ihnen aber nichts zurück."
Handhabung optional oder mehrere Typen mit Gewerkschaftstypen (PHP 8.0)
Vor PHP 8.0 konnten Sie nicht "das return String oder bool" ausdrücken. Jetzt können Sie:
Funktion findUser (int $ id):? user { // Gibt Benutzer oder Null zurück }
Noch besser mit Gewerkschaftstypen:
Funktion ProcessInput ($ Eingabe): String | int | bool { if ($ input === '') { Return falsch; } if (is_numeric ($ input)) { return (int) $ input; } Return Tric ($ Input); }
Dies macht den Rückvertrag explizit, anstatt ihn als undokumentiertes mixed
zu lassen.
? Tipp: Vermeiden Sie die Überbeanspruchung von Gewerkschaftstypen. Wenn eine Funktion zu viele Typen zurückgibt, überlegen Sie, ob sie zu viel tut.
Häufige Fallstricke und Best Practices
Hier sind ein paar Dinge, auf die Sie achten sollten:
Fügen Sie keine Typen hinzu, nur aus Gründen dessen
Beginnen Sie mit kritischen Funktionen (APIs, Kernlogik), nicht mit jedem Helfer.Seien Sie vorsichtig mit internen PHP -Funktionen
Einige geben beim Versagenfalse
zurück (z. B.strpos()
). Match -Erwartungen:FunktionsfindPosition (String $ Haystack, String $ Nadel):? Int { $ pos = strpos ($ haystack, $ nadle); $ pos === falsch? NULL: $ pos; }
Jetzt ist der Rückgabetyp
?int
, was klarer alsint|false
.Verwenden Sie absichtlich
mixed
(PHP 8.0)
Wenn eine Funktion einen Typ wirklich akzeptiert oder zurückgibt, verwenden Siemixed
:Funktionsdebugprint (gemischter $ value): void { var_dump ($ value); }
Dies ist besser als kein Typ Hinweis.
Vermeiden Sie
return null;
invoid
-Funktionen
Während es erlaubt ist, kann es die Leser verwirren. Lassen Sie diereturn
aus, es sei denn, Sie verlassen früh.- Verwenden Sie bestimmte Typen (
string
,array
,User
), wenn Sie den Rückgabewert kennen. - Verwenden Sie
?Type
, wennnull
eine gültige Antwort ist. - Verwenden Sie
void
für nur Nebeneffektfunktionen. - Verwenden Sie Unionstypen (
string|int
), wenn mehrere Typen erwartet werden. - Verwenden Sie
mixed
sparsam und absichtlich.
Zusammenfassung
Wenn Sie von Untyped ( mixed
durch Konvention) zu gut typischen Funktionen wechseln, wird Ihr PHP-Code robuster:
Das Ziel ist nicht, alles in maximalem Umfang einzugeben, sondern das Verhalten Ihres Codes klarer und weniger fehleranfällig.
Grundsätzlich: Wenn Ihre Funktion einen Rückgabetyp verspricht, stellen Sie sicher, dass sie dieses Versprechen hält. PHP hilft Ihnen bei der Durchsetzung.
Das obige ist der detaillierte Inhalt vonVon 'gemischt' bis `void`: Ein praktischer Leitfaden für PHP -Rückgabetypdeklarationen. 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





PHP unterstützt die Koexistenz von losen Typen und strengen Typen, was das Kernmerkmal seiner Entwicklung von Skriptsprachen bis hin zu modernen Programmiersprachen ist. 1. Lose Typen eignen sich zum schnellen Prototyping, zur Behandlung der dynamischen Benutzereingabe oder zum Docken mit externen APIs. Es gibt jedoch Probleme wie das Risiko einer impliziten Typumwandlung, Schwierigkeiten beim Debuggen und der schwachen Toolunterstützung. 2. Strikter Typ ist durch Declare (strict_types = 1) aktiviert, das Fehler im Voraus erkennen, die Code -Lesbarkeit und die IDE -Unterstützung verbessern und für Szenarien mit hohen Anforderungen für die Kerngeschäftslogik, die Zusammenarbeit der Teams und die Datenintegrität geeignet ist. 3. Die gemischte Verwendung sollte in der tatsächlichen Entwicklung verwendet werden: Strenge Typen sind standardmäßig aktiviert, lose Typen werden nur bei Bedarf an den Eingangsgrenzen verwendet, und die Überprüfung und Typumwandlung werden so bald wie möglich durchgeführt. 4. Empfohlene Praktiken umfassen die Verwendung von PHPSTA

Upgradephp7.xcodeBasiestophp8 BYREPLACKINGPHPDOC-SUGGEDTYPESHALT@paramstring | intwithnativeUnionTypesuchassstring | intforParameterSandRetReturntypes, welcheimprovestypesafetyandandclarity;

0,1 0,2! == 0.3inphpdueToBinaryfloating-PunktPrecisionLimitations, SodvelopersMustavoidDirectComparisonsanduSepsilon-basiert, EmploybcMathorgmpforxactaritaritaritaritaritaritaritaritaritarithmus, StorecurrencyInintible-Possible, formatoutputciptcusefuls

ReturntypesinphpimProvecodereLabilityandClarityBySpicifyingWhatafunctionMustreturn.2. UseBasictypeslikestring, ordatetimetoEnforceCorrectreturnValuesandCatchErary.3.ApplyNulletypeswithtypeswith? (E.G

AcallableInphpisapseudo-typerepresentingyvaluethatcanBeinvokeeduedthe () -Operator, verwendet PriminalerFlexibleCodeIncallbacksandHigher-Orderfunktionen;

In Php8.1 eingeführte Enums liefert eine konstante Erfassung, die das Problem mit dem magischen Wert löst. 1. Verwenden Sie Enum, um feste Konstanten wie Status :: Draft zu definieren, um sicherzustellen, dass nur vordefinierte Werte verfügbar sind. 2. Binden Sie die Aufenthalte an Saiten oder Ganzzahlen durch BackEdums und unterstützen Sie die Konvertierung von () und TryFrom () zwischen Skalaren und Enums; 3. Enums können Methoden und Verhaltensweisen wie Color () und IsEditable () definieren, um die Kapselung der Geschäftslogik zu verbessern. 4. Anwendbar auf statische Szenarien wie Zustand und Konfiguration, nicht für dynamische Daten; 5. Es kann die Schnittstelle von Unitenum oder BackedENum für Typeinschränkungen implementieren, die Code -Robustheit und die IDE -Unterstützung verbessern und ist IS

PHP verwendet die ZVAL -Struktur, um Variablen zu verwalten. Die Antwort lautet: 1. ZVAL enthält Werte, Typen und Metadaten mit einer Größe von 16 Bytes; 2. Wenn sich der Typ ändert, müssen nur die Gewerkschafts- und Typinformationen aktualisiert werden. 3.. Komplexe Typen beziehen sich auf Strukturen mit Referenzzahlen durch Zeiger; 4. Wenn Werte zugewiesen werden, wird die Kopie verwendet, um den Speicher zu optimieren. 5. Referenzen lassen Variablen das gleiche ZVAL teilen; 6. Recyclingreferenzen werden von einem speziellen Müllsammler verarbeitet. Dies erklärt den zugrunde liegenden Mechanismus des PHP -variablen Verhaltens.

Die Speicherverwaltung von PHP basiert auf Referenzzählung und Zyklusrecycling. Unterschiedliche Datentypen haben einen erheblichen Einfluss auf die Leistung und den Speicherverbrauch: 1. Ganzzahlen und Gleitkomma-Zahlen haben eine geringe Speicherverwendung und den schnellsten Betrieb und sollten zuerst für numerische Operationen verwendet werden. 2. Strings verwenden einen Schreibschreiberkopienmechanismus, aber große Zeichenfolgen oder häufige Spleißen verursachen Leistungsprobleme. Daher ist es ratsam, implodierende Optimierung zu verwenden. 3. Die Array -Speicher -Overhead ist groß, insbesondere große oder verschachtelte Arrays. Generatoren sollten verwendet werden, um große Datensätze zu verarbeiten und rechtzeitig Variablen freizusetzen. 4. Objekte werden im Referenzmodus übergeben, und Instanziierung und Attributzugriff sind langsam, was für Szenarien geeignet ist, in denen Verhaltenskapselungen erforderlich sind. 5. Ressourcentypen müssen manuell freigegeben werden, andernfalls kann dies zu Leckagen auf Systemebene führen. Um die Leistung zu verbessern, sollten Datentypen vernünftig ausgewählt werden, der Speicher rechtzeitig veröffentlicht und große Daten durch globale Variablen vermieden werden.
