Heim Backend-Entwicklung PHP-Tutorial PHP: Top-Funktionen und Verbesserungen

PHP: Top-Funktionen und Verbesserungen

Jan 04, 2025 pm 07:44 PM

PHP 8.4 ist endlich da und bringt aufregende Änderungen mit sich, die die Arbeitsweise von Entwicklern verändern werden! Mit jeder neuen Version beweist PHP immer wieder, warum es ein so unverzichtbares Werkzeug in der heutigen Webentwicklungslandschaft ist.

Voraussetzungen

In diesem Artikel wird davon ausgegangen, dass Sie über Grundkenntnisse der Programmiersprache PHP verfügen.

Software, die ich für die PHP-Entwicklung verwende

  • Laravel Herd: Wird zur Verwaltung meiner PHP-Versionen und meines Nginx-Servers verwendet.

  • PHPStorm: Eine großartige IDE mit gutem IntelliSense und KI-Copilot.

  • Laragon: Eine benutzerfreundliche lokale Entwicklungsumgebung, die PHP und andere Technologien unterstützt.


Asymmetrische Eigenschaftssichtbarkeit (Version 2)??

In PHP war die Sichtbarkeit von Objekteigenschaften traditionell symmetrisch. Das bedeutet, dass die Get- und Set-Vorgänge für eine Eigenschaft dieselbe Sichtbarkeit haben müssen – öffentlich, privat oder geschützt –, sich aber nicht unterscheiden dürfen.

Wenn beispielsweise eine Eigenschaft öffentlich ist, sind sowohl das Lesen als auch das Schreiben darauf öffentlich, und es gibt keine Möglichkeit, einen Vorgang ohne den anderen zuzulassen.

Wenn Sie im Kontext eine Eigenschaft einer Klasse als öffentlich deklarieren, wird sie veränderbar, sodass sie von außerhalb der Klasse gelesen und geändert werden kann.

Mit dem Aufkommen der asymmetrischen Sichtbarkeit können Sie jetzt jedoch separate Bereiche für Lese- und Schreibeigenschaften definieren.

Das bedeutet, dass eine Eigenschaft in einem Kontext lesbar und in einem anderen beschreibbar sein kann, was eine bessere Kontrolle darüber bietet, wie auf Eigenschaften zugegriffen und diese geändert werden.

class Animal{
  public private(set) string $name;

  public setName(string $foo){
    $ths->name = $foo;
  }
}

$animal = new Animal();

echo $animal->name; // This will run correctly
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir können eine Eigenschaft öffentlich machen lassen und die festgelegte Eigenschaft privat machen. Dies bedeutet, dass die Eigenschaft nicht außerhalb der Klasse aktualisiert werden kann und somit unveränderlich ist.

Wenn Sie versuchen, die Eigenschaft „$name“ zu ändern, wird eine Fehlermeldung angezeigt, dass Sie die Eigenschaft aufgrund des Sichtbarkeitsbereichs nicht ändern können.

PHP : Top Features and Improvements

Hier sind einige wichtige Punkte, die Sie zur asymmetrischen Sichtbarkeit beachten sollten:

  • Leerzeichen sind in der Set-Visibility-Deklaration nicht zulässig. private(set) ist korrekt. private( set ) ist nicht korrekt und führt zu einem Analysefehler.

  • Wenn eine Immobilie als öffentlich deklariert ist, kann die Hauptsichtbarkeit weggelassen werden. Beispielsweise verhalten sich „public private(set)“ und „private(set)“ identisch, da die öffentliche Sichtbarkeit impliziert ist.

  • Nur ​​typisierte Eigenschaften dürfen eine separate Sichtbarkeit für Set-Operationen haben. Dies bedeutet, dass Sie in PHP keine asymmetrische Sichtbarkeit auf untypisierte Eigenschaften anwenden können.

  • Die festgelegte Sichtbarkeit muss mit der get-Sichtbarkeit identisch oder restriktiver sein. Beispielsweise sind public protected(set) und protected protected(set) gültig, aber protected public(set) führt zu einem Syntaxfehler.

Erfahren Sie mehr über die Sichtbarkeit von Asymmetrien, einschließlich anderer Beispiele zum Nachlesen.

Immobilienhaken?

Property Hook ist eine großartige Funktion von PHP 8.4, die Entwicklern die Möglichkeit bietet, Get- und Set-Direktiven direkt zu einer Variablen hinzuzufügen, ohne ausdrücklich Methoden zum Lesen und Schreiben der Variablen zu erstellen.

Alternativ können die magischen Methoden __get und __set verwendet werden, aber dadurch wird der Code ausführlicher, es können Fehler auftreten und statische Analysetools werden beschädigt.

Man kann mit Sicherheit sagen, dass das Design und die Syntax von Eigenschafts-Hooks denen von Kotlin ähneln, aber hauptsächlich von den Programmiersprachen C# und Swift beeinflusst werden.

In PHP 8.3 können wir eine Klasse mit einer Eigenschaft in ihrem Konstruktor erstellen, und sie gibt uns die Möglichkeit, die Eigenschaft zu lesen und zu schreiben.

class Animal{
  public private(set) string $name;

  public setName(string $foo){
    $ths->name = $foo;
  }
}

$animal = new Animal();

echo $animal->name; // This will run correctly
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Das Problem bei diesem Ansatz besteht darin, dass wir, wenn wir uns entscheiden, in die Eigenschaft zu schreiben, entweder die magische Methode __set verwenden oder ausdrücklich eine Methode zum Mutieren der Variablen erstellen, was später zu einem Bruch in der Codebasis führen könnte.

Eigenschafts-Hooks ermöglichen es Entwicklern, sofort nach dem Erstellen der Eigenschaft eine Set-Direktive zu erstellen.

class Car {
    public function __construct(public string $model) { }
}
Nach dem Login kopieren
Nach dem Login kopieren

Beachten Sie, dass der an die Set-Direktive übergebene Wert vom gleichen Typ wie die Eigenschaft sein muss, sonst wird ein Fehler ausgegeben.

Sie können der Set-Direktive einen anderen Typ übergeben und ihn in den richtigen Typ konvertieren, bevor Sie in die Eigenschaft schreiben, wie unten gezeigt:

class Car{
  public string $model{
    set (string $value) {
      if(strlen($value) === 0){
        throw new ValueError("Model name cannot be empty");
      }
      $this->model = $value;
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Das obige Beispiel zeigt, wie wir eine zusammengesetzte Typvariable sicher von der Set-Direktive empfangen und sie in den richtigen, durch die Eigenschaft definierten Typ analysieren können.

Sie können das an die Set-Direktive übergebene Argument weglassen, wenn es mit dem Eigenschaftstyp übereinstimmt. Beispielsweise sind die beiden folgenden Methoden gültig und verhalten sich ähnlich.

class Car{
  public string $year{
    set (string|number $value) {
      $year = intval($value);
      if($year < 2000){
        throw new ValueError("We only accept cars produced in year 2000 and above");
      }
      $this->year= $value;
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Beachten Sie, dass das Argument standardmäßig $value ist, wenn es weggelassen wird. Diese Syntax ist in Programmiersprachen wie Kotlin und C# üblich.

Instanziieren von Klassen ohne zusätzliche Klammern

Vor dieser Funktion erforderte der Zugriff auf Mitglieder einer Klasse in PHP das Hinzufügen zusätzlicher Klammern um die Klasse.

// --------------------------METHOD 1----------------------------
public string $model{
    set (string $value) {
      if(strlen($value) === 0){
        throw new ValueError("Model name cannot be empty");
      }
      $this->model = $value;
    }
 }

// --------------------------METHOD 2----------------------------
public string $model{
    set {
      if(strlen($value) === 0){
        throw new ValueError("Model name cannot be empty");
      }
      $this->model = $value;
    }
  }
Nach dem Login kopieren

Wenn Sie den neuen Car()-Aufruf nicht in Klammern setzen, erhalten Sie einen Analysefehler.

Die neue Syntax ermöglicht uns den Zugriff auf Methoden, Eigenschaften und Konstanten, ohne dass zusätzliche Klammern erforderlich sind.

class Car {

  public function getName(){
    return "Toyota Camry";
  }
}

$carName = (new Car())->getName();
Nach dem Login kopieren

Eine vollständige Aufschlüsselung dieser vorgeschlagenen Änderung finden Sie in den Details im RFC.

Einführung neuer Array-Funktionen

Neue Hilfsfunktionen kommen zu PHP 8.4.

Einige dieser Funktionen sind bereits in Laravel Arr oder Collection-Helfern implementiert.

Die Funktion array_find_key()

Die Funktion array_find_key($array, $callback) gibt den Schlüssel des ersten Elements zurück, für das die Methode $callback true zurückgibt. Wenn kein Element die Bedingung erfüllt, gibt die Funktion null zurück.

class Animal{
  public private(set) string $name;

  public setName(string $foo){
    $ths->name = $foo;
  }
}

$animal = new Animal();

echo $animal->name; // This will run correctly
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Die Funktion array_find()

Die Funktion array_find_key() dient dazu, ein Array zu durchsuchen und den Schlüssel des ersten Elements zurückzugeben, das eine durch eine Rückruffunktion definierte Bedingung erfüllt.

Ähnlich wie array_find_key() gibt es null zurück, wenn kein passendes Element gefunden wird.

class Car {
    public function __construct(public string $model) { }
}
Nach dem Login kopieren
Nach dem Login kopieren

Wenn keine Frucht im Array eine Menge größer als 10 hätte, würde die Funktion null zurückgeben.

Die Funktion array_any()

Die Funktion array_any() bestimmt, ob mindestens ein Element innerhalb eines Arrays ein bestimmtes Kriterium erfüllt, das durch eine bereitgestellte Bewertungsfunktion angegeben wird.

Wenn mindestens ein Element die Bedingung erfüllt, gibt die Funktion „true“ zurück; andernfalls wird false zurückgegeben.

class Car{
  public string $model{
    set (string $value) {
      if(strlen($value) === 0){
        throw new ValueError("Model name cannot be empty");
      }
      $this->model = $value;
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Wenn keine Zahl im Array größer als 10 ist, gibt die Funktion „false“ zurück.

Die Funktion array_all()

Die Funktion array_all() prüft, ob jedes einzelne Element in einem Array einen bestimmten Test besteht. Es wendet eine spezielle Regel (die Callback-Funktion) auf jedes Element an.

Wenn alle Elemente den Test gemäß der Regel bestehen, gibt array_all() true zurück.

class Car{
  public string $year{
    set (string|number $value) {
      $year = intval($value);
      if($year < 2000){
        throw new ValueError("We only accept cars produced in year 2000 and above");
      }
      $this->year= $value;
    }
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

In diesem Beispiel durchläuft die Funktion array_all() das Array $numbers und wendet die Rückruffunktion auf jedes Element an. Der Rückruf prüft, ob die Zahl durch 2 teilbar (also gerade) ist.

Da alle Zahlen im Array gerade sind, gibt die Funktion array_all() true zurück und die Meldung „Alle Zahlen sind gerade.“ wird angezeigt.


Wir haben die wichtigsten Verbesserungen untersucht, die in PHP 8.4 eingeführt wurden. Diese Updates bieten wertvolle Verbesserungen für Entwickler, einschließlich leistungsstarker neuer Funktionen und potenzieller Effizienzsteigerungen.

Um tiefer in alle Updates einzutauchen, einschließlich Beispielen und detaillierten Erklärungen, besuchen Sie die offizielle Seite mit der Ankündigung der Veröffentlichung von PHP 8.4.0.

Vergessen Sie nicht, die veralteten Versionen und Abwärtskompatibilitätsänderungen zu überprüfen, um einen reibungslosen Übergang zur neuesten Version zu gewährleisten.

Was kommt als nächstes? ?

  • Wenn Ihnen der Artikel gefallen hat, vergessen Sie nicht, ihn mit anderen zu teilen.

  • Ich würde gerne Ihre Gedanken hören – schreiben Sie unten einen Kommentar und lassen Sie uns das Gespräch am Laufen halten. Prost! ?

Folgen Sie mir für weitere PHP-, Node.js-, TypeScript- und PHP-Artikel! Sie können mich auch auf Twitter oder LinkedIn finden.

Das obige ist der detaillierte Inhalt vonPHP: Top-Funktionen und Verbesserungen. 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
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 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
1669
14
PHP-Tutorial
1273
29
C#-Tutorial
1256
24
Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Erklären Sie sicheres Kennwort -Hashing in PHP (z. B. password_hash, password_verify). Warum nicht MD5 oder SHA1 verwenden? Apr 17, 2025 am 12:06 AM

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP in Aktion: Beispiele und Anwendungen in realer Welt PHP in Aktion: Beispiele und Anwendungen in realer Welt Apr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

Wie funktioniert der Php -Typ -Hinweis, einschließlich Skalartypen, Rückgabetypen, Gewerkschaftstypen und nullbaren Typen? Wie funktioniert der Php -Typ -Hinweis, einschließlich Skalartypen, Rückgabetypen, Gewerkschaftstypen und nullbaren Typen? Apr 17, 2025 am 12:25 AM

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Apr 14, 2025 am 12:12 AM

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP und Python: Verschiedene Paradigmen erklärt PHP und Python: Verschiedene Paradigmen erklärt Apr 18, 2025 am 12:26 AM

PHP ist hauptsächlich prozedurale Programmierung, unterstützt aber auch die objektorientierte Programmierung (OOP). Python unterstützt eine Vielzahl von Paradigmen, einschließlich OOP, funktionaler und prozeduraler Programmierung. PHP ist für die Webentwicklung geeignet, und Python eignet sich für eine Vielzahl von Anwendungen wie Datenanalyse und maschinelles Lernen.

Wie verhindern Sie die SQL -Injektion in PHP? (Vorbereitete Aussagen, PDO) Wie verhindern Sie die SQL -Injektion in PHP? (Vorbereitete Aussagen, PDO) Apr 15, 2025 am 12:15 AM

Die Verwendung von Vorverarbeitungsanweisungen und PDO in PHP kann SQL -Injektionsangriffe effektiv verhindern. 1) Verwenden Sie PDO, um eine Verbindung zur Datenbank herzustellen und den Fehlermodus festzulegen. 2) Erstellen Sie Vorverarbeitungsanweisungen über die Vorbereitungsmethode und übergeben Sie Daten mit Platzhaltern und führen Sie Methoden aus. 3) Abfrageergebnisse verarbeiten und die Sicherheit und Leistung des Codes sicherstellen.

PHP und Python: Code Beispiele und Vergleich PHP und Python: Code Beispiele und Vergleich Apr 15, 2025 am 12:07 AM

PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

See all articles