Zusammenfassung der PHP-Funktionstypdeklaration
PHP7 beginnt, die skalare Typdeklaration zu unterstützen, und die Variante stark typisierter Sprache ist relativ stark ausgeprägt. Bei der Verwendung dieser Funktion bin ich auf zwei Fallstricke gestoßen: einmal bei der Deklaration von Parametern vom booleschen Typ und zuletzt bei der Deklaration von Parametern vom doppelten Typ, die beide zu Laufzeitfehlern führten. Um in Zukunft ähnliche Fehler zu vermeiden, habe ich in den letzten Tagen die offiziellen Dokumente gelesen. Dieser Artikel ist eine Zusammenfassung der Verwendung von Typdeklarationen in PHP-Funktionen nach dem Lesen.
Syntaktisch hat die PHP-Funktionsdefinition mehrere Perioden durchlaufen:
Antike (PHP 4)
Es ist sehr einfach, eine Funktion zu definieren. Verwenden Sie die Syntaxdeklaration von Funktionsname(args) {body}. Parameter- und Rückgabewerttypen können nicht angegeben werden, und es gibt eine unbegrenzte Anzahl möglicher Parameter- und Rückgabewerttypen. Dies ist bei weitem die gebräuchlichste Art, eine Funktion zu deklarieren.
Array- und Referenztyp-Parameterwertdeklaration (PHP 5)
Array, Klasse, Schnittstelle und Callable können in der Funktionsdeklaration verwendet werden. Ab 5.6 werden Konstanten (einschließlich Klassenkonstanten) als Standardparameter sowie Parameterarrays (mit vorangestellten Auslassungspunkten...) unterstützt. Beispiel:
function sum(...$numbers) { $sum = 0; foreach ($numbers as $number) { $sum += $number; } return $sum; }
Hinweis: Wenn der Wert des Parameters null sein kann, muss null der Standardwert des Parameters sein, sonst tritt beim Aufruf ein Fehler auf. Zum Beispiel:
function foo(array $arr = null) { ... }
Skalare Typ- und Rückgabewertdeklaration (PHP 7)
Funktionen unterstützen offiziell Skalartypen (int, bool, float, string) und Rückgabewerttypen (Der deklarierbare Typ ist derselbe wie der Parameter) Deklaration. Ab dieser Version können Funktionsdeklarationen, abgesehen von Syntaxunterschieden, formal wie stark typisierte Sprachen erstellt werden.
Wenn der Rückgabewert der Funktion möglicherweise null ist, kann der Rückgabewerttyp leider nicht angegeben werden. Zum Beispiel:
function getModel() : Foo { if ($this->_model === null) { $this->_model = xxxx; // get from db or otherelse } return $this->_model; // 如果$this->_model仍是null,运行出错 }
Parameter und Rückgabewerte können null sein und die Rückgabetypdeklaration ist ungültig (PHP 7.1)
Wenn die Parameter- und Rückgabewerttypen null sein können, wird dem Typ Folgendes vorangestellt Eine Fragezeichen-Änderung (?) kann das Problem von Nullwerten lösen (steht nicht in Konflikt mit Standardparametern); die Typdeklaration fügt iterierbare Werte hinzu und unterstützt auch Rückgabewerte vom Typ „void“. Zum Beispiel:
function getModel(?int $id) : ?Foo { if ($id !== null) { $this->_model = xxxx; } else { $this->_model = yyyy; } return $this->_model; } // 调用 $foo->getModel(null); $foo->getModel(100); // 函数声明了参数并且没有提供默认参数,调用时不传入参数会引发错误 // 将函数声明改成 getModel(?int $id = 100) {},可以不传参数 $foo->getModel();
Wenn der Rückgabewert der Funktion void ist, kann der Funktionskörper nichts zurückgeben (die Schreibweise return void; ist ebenfalls falsch!), oder die return-Anweisung kann weggelassen werden.
function test(array $arr) : void { if (!count($arr) { return; } // 不要return; array_walk($arr, function ($elem) {xxxx}); }
Wenn wir auf die oben genannten historischen Änderungen zurückblicken, können wir sehen, dass die Funktionstypdeklaration in PHP 7.1 sehr vollständig war (obwohl sie in der Praxis nicht oft verwendet wird). Beachten Sie, dass es in dem Artikel um Parameter- und Rückgabewerttypdeklarationen geht. PHP garantiert nicht, dass die Parametertypen während des Betriebs unverändert bleiben. Das heißt, der folgende Code ist zulässig:
function foo(array $arr) : array { // change $arr from array to int $arr = 3; return []; }
Aus dieser Sicht ist PHP dies Da es sich immer noch um eine schwach typisierte Sprache handelt, kann keine statische Kompilierung durchgeführt werden.
Lassen Sie uns über die Fallstricke in der Praxis sprechen. Laut offizieller Dokumentation sind die verfügbaren Typen für Funktionsparameter- und Rückgabewerttypdeklarationen:
● Klasse/Schnittstelle
● self, das nur in seinen eigenen Methoden verwendet werden kann
● Array
● Bool
● Callable
● Int
● Float
● String
● iterierbar
● void (wird nur für Rückgabewert verwendet)
Beachten Sie, dass die Liste keine booleschen und doppelten Typen enthält! Sofern Sie diese beiden Typen nicht definieren, ist es falsch, sie in Parametern und Rückgabewerten zu verwenden!
Hier ist PHP auch etwas schmerzhaft. Die beiden Schlüsselwörter double und float sind im normalen Gebrauch nahezu identisch. Doubleval ist beispielsweise ein Alias von floatval, is_double ist ein Alias von is_float und (double) und (float) haben bei der Konvertierung die gleiche Wirkung. Bei der Verwendung in Typdeklarationen ist es jedoch anders. Die gleiche Situation tritt bei bool und boolean auf.
Zusammenfassung
Derzeit ist die stabile Version von PHP 7.2 veröffentlicht. Es wird empfohlen, in neuen Projekten so oft wie möglich PHP 7.1 und nachfolgende Versionen zu verwenden. Um klaren und wartbaren Code zu schreiben, werden deklarative Typen empfohlen. Es wird empfohlen, Nullwerte nur für Referenztypen oder Zeichenfolgen zu verwenden und Nullwerte nicht für Skalartypparameter wie int/float zu verwenden. Versuchen Sie, func_get_argc und andere Funktionen nicht zu verwenden, es sei denn, dies ist erforderlich.
Das obige ist der detaillierte Inhalt vonZusammenfassung der PHP-Funktionstypdeklaration. 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



Wie kann der Lazy-Loading-Effekt von Bildern durch PHP-Funktionen optimiert werden? Mit der Entwicklung des Internets nimmt die Anzahl der Bilder auf Webseiten zu, was die Seitenladegeschwindigkeit unter Druck setzt. Um die Benutzererfahrung zu verbessern und die Ladezeit zu verkürzen, können wir die Bild-Lazy-Loading-Technologie verwenden. Das verzögerte Laden von Bildern kann das Laden von Bildern verzögern. Bilder werden nur geladen, wenn der Benutzer zum sichtbaren Bereich scrollt, was die Ladezeit der Seite verkürzen und das Benutzererlebnis verbessern kann. Beim Schreiben von PHP-Webseiten können wir den Lazy-Loading-Effekt von Bildern optimieren, indem wir einige Funktionen schreiben. Details weiter unten

So reduzieren Sie die Speichernutzung durch PHP-Funktionen. Bei der Entwicklung ist die Speichernutzung ein sehr wichtiger Gesichtspunkt. Wenn in einem Programm viel Speicher verwendet wird, kann es zu Verlangsamungen oder sogar Programmabstürzen kommen. Daher ist die vernünftige Verwaltung und Reduzierung der Speichernutzung ein Thema, auf das jeder PHP-Entwickler achten sollte. In diesem Artikel werden einige Methoden zur Reduzierung der Speichernutzung durch PHP-Funktionen vorgestellt und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. Verwenden Sie die Funktion unset(), um Variablen in PHP freizugeben. Wenn eine Variable nicht mehr benötigt wird, verwenden Sie

Einführung in die PHP-Funktion – curl_multi_getcontent(): Den Inhalt einer cURL-Sitzung abrufen. Bei der PHP-Entwicklung müssen wir häufig Daten von anderen Servern über das Netzwerk anfordern. Und cURL (ClientURL) ist eine leistungsstarke PHP-Erweiterungsbibliothek, die für die Netzwerkkommunikation in PHP verwendet wird. cURL bietet eine Reihe von Funktionen, darunter curl_multi_getcontent (), mit der der Inhalt einer cURL-Sitzung abgerufen wird.

PHPDeprecated: Functionereg_replace()isdeprecated-Solution Bei der Entwicklung in PHP stoßen wir oft auf das Problem, dass einige Funktionen als veraltet deklariert werden. Das bedeutet, dass diese Funktionen in den neuesten PHP-Versionen möglicherweise entfernt oder ersetzt werden. Ein häufiges Beispiel ist die Funktion ereg_replace(). ereg_replace

PHP-Bildverarbeitungsfunktionen sind eine Reihe von Funktionen, die speziell zum Verarbeiten und Bearbeiten von Bildern verwendet werden. Sie bieten Entwicklern umfangreiche Bildverarbeitungsfunktionen. Mithilfe dieser Funktionen können Entwickler Vorgänge wie Zuschneiden, Skalieren, Drehen und Hinzufügen von Wasserzeichen zu Bildern implementieren, um unterschiedliche Bildverarbeitungsanforderungen zu erfüllen. Zunächst werde ich vorstellen, wie PHP-Bildverarbeitungsfunktionen zum Implementieren der Bildzuschneidefunktion verwendet werden. PHP stellt die Funktion imagecrop() zur Verfügung, mit der Bilder zugeschnitten werden können. Durch Übergabe der Koordinaten und der Größe des Zuschneidebereichs können wir das Bild zuschneiden

Einführung in die PHP-Funktion: Funktion strtr() In der PHP-Programmierung ist die Funktion strtr() eine sehr nützliche Funktion zum Ersetzen von Zeichenfolgen. Es wird verwendet, um bestimmte Zeichen oder Zeichenfolgen in einer Zeichenfolge durch andere Zeichen oder Zeichenfolgen zu ersetzen. In diesem Artikel wird die Verwendung der Funktion strtr() vorgestellt und einige spezifische Codebeispiele gegeben. Die grundlegende Syntax der Funktion strtr() lautet wie folgt: strtr(string$str, array$replace) wobei $str das ursprüngliche Wort ist, das ersetzt werden soll.

PHP-Funktionen weisen Ähnlichkeiten mit Funktionen in anderen Sprachen auf, verfügen aber auch über einige einzigartige Funktionen. Syntaktisch werden PHP-Funktionen mit function, JavaScript mit function und Python mit def deklariert. In Bezug auf Parameter und Rückgabewerte akzeptieren PHP-Funktionen Parameter und geben einen Wert zurück. Auch JavaScript und Python verfügen über ähnliche Funktionen, die Syntax ist jedoch unterschiedlich. Was den Umfang betrifft, haben alle Funktionen in PHP, JavaScript und Python einen globalen oder lokalen Geltungsbereich. Auf globale Funktionen kann von überall aus zugegriffen werden, und auf lokale Funktionen kann nur innerhalb ihres Deklarationsumfangs zugegriffen werden.

Die Leistung verschiedener PHP-Funktionen ist entscheidend für die Anwendungseffizienz. Zu den Funktionen mit besserer Leistung gehören echo und print, während Funktionen wie str_replace, array_merge und file_get_contents eine langsamere Leistung aufweisen. Beispielsweise wird die Funktion str_replace zum Ersetzen von Zeichenfolgen verwendet und weist eine mäßige Leistung auf, während die Funktion sprintf zum Formatieren von Zeichenfolgen verwendet wird. Die Leistungsanalyse zeigt, dass die Ausführung eines Beispiels nur 0,05 Millisekunden dauert, was beweist, dass die Funktion eine gute Leistung erbringt. Daher kann der kluge Einsatz von Funktionen zu schnelleren und effizienteren Anwendungen führen.
