Was ist neu in PHP?

Patricia Arquette
Freigeben: 2024-11-23 19:10:12
Original
866 Leute haben es durchsucht

Whats new in PHP

PHP 8.4: Was ist neu und wie wird es verwendet?

PHP 8.4 ist da und bringt mehrere aufregende Funktionen mit, die das Codieren vereinfachen und die Leistung verbessern. In diesem Artikel werden die wichtigsten Updates anhand einfacher Beispiele erläutert, sodass Entwickler aller Erfahrungsstufen diese Funktionen leicht verstehen und verwenden können.


1. Eigenschaftshaken

Mit Eigenschafts-Hooks können Sie anpassen, was passiert, wenn Sie eine Eigenschaft abrufen oder festlegen. Dadurch entfällt die Notwendigkeit separater Getter- und Setter-Methoden.

Beispiel:

class User {
    private string $firstName;
    private string $lastName;

    public function __construct(string $firstName, string $lastName) {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    // This property combines first and last name
    public string $fullName {
        get => $this->firstName . ' ' . $this->lastName;
        set => [$this->firstName, $this->lastName] = explode(' ', $value, 2);
    }
}

$user = new User('John', 'Doe');
echo $user->fullName; // Output: John Doe

$user->fullName = 'Jane Smith'; // Updates first and last names
echo $user->fullName; // Output: Jane Smith
Nach dem Login kopieren

Warum es nützlich ist:

Eigenschafts-Hooks machen Ihren Code sauberer und reduzieren den Boilerplate.


2. Asymmetrische Sicht

Sie können jetzt verschiedene Sichtbarkeitsstufen für das Lesen und Schreiben einer Eigenschaft festlegen. Beispielsweise kann eine Eigenschaft für jeden lesbar, aber nur für die Klasse selbst beschreibbar sein.

Beispiel:

class BankAccount {
    public private(set) float $balance; // Public read, private write

    public function __construct(float $initialBalance) {
        $this->balance = $initialBalance; // Allowed here
    }

    public function deposit(float $amount): void {
        $this->balance += $amount; // Allowed here
    }
}

$account = new BankAccount(100.0);
echo $account->balance; // Output: 100

$account->deposit(50.0); // Adds 50 to the balance
echo $account->balance; // Output: 150

// The following line will cause an error:
// $account->balance = 200.0;
Nach dem Login kopieren

Warum es nützlich ist:

Mit dieser Funktion lässt sich leichter steuern, wie auf eine Eigenschaft zugegriffen und diese aktualisiert wird.


3. Neue Array-Funktionen

PHP 8.4 fügt neue Array-Funktionen hinzu, die Ihnen das Schreiben manueller Schleifen ersparen.

Beispiel:

$numbers = [1, 2, 3, 4, 5];

// Find the first even number
$firstEven = array_find($numbers, fn($n) => $n % 2 === 0);
echo $firstEven; // Output: 2

// Check if any number is greater than 4
$hasBigNumber = array_any($numbers, fn($n) => $n > 4);
var_dump($hasBigNumber); // Output: bool(true)

// Check if all numbers are positive
$allPositive = array_all($numbers, fn($n) => $n > 0);
var_dump($allPositive); // Output: bool(true)
Nach dem Login kopieren

Warum es nützlich ist:

Diese Funktionen machen Array-Operationen schneller zu schreiben und einfacher zu verstehen.


4. Vereinfachte Objektinstanziierung

Sie können jetzt ein Objekt erstellen und sofort eine Methode dafür aufrufen, ohne die Instanziierung in Klammern zu setzen.

Beispiel:

class Logger {
    public function log(string $message): void {
        echo $message;
    }
}

// Create an object and call a method in one step
new Logger()->log('Logging a message'); // Output: Logging a message
Nach dem Login kopieren

Warum es nützlich ist:

Es reduziert unnötige Syntax und macht Ihren Code sauberer.


5. Abschaffung impliziter Nullable-Typen

PHP 8.4 erfordert eine explizite Angabe, wann ein Parameter null sein kann. Dadurch ist der Code einfacher zu verstehen und zu warten.

Beispiel:

// PHP 8.4 (Recommended):
function process(?string $data = null) {
    echo $data ?? 'No data provided';
}
Nach dem Login kopieren

Warum es nützlich ist:

Explizite Deklarationen verhindern Verwirrung und reduzieren potenzielle Fehler.


6. Faule Objekte

Mit Lazy Objects können Sie die Erstellung eines Objekts verzögern, bis es tatsächlich verwendet wird, wodurch Ressourcen gespart werden können.

Beispiel:

class ExpensiveResource {
    public function __construct() {
        // Simulate a time-consuming setup
        sleep(2);
    }

    public function doWork(): void {
        echo 'Working...';
    }
}

// Use a lazy object to delay creation
$initializer = fn() => new ExpensiveResource();
$reflector = new ReflectionClass(ExpensiveResource::class);
$resource = $reflector->newLazyProxy($initializer);

// The object isn't created yet
$resource->doWork(); // Now the object is created and "Working..." is printed
Nach dem Login kopieren

Warum es nützlich ist:

Dies ist besonders hilfreich, wenn es sich um teure Operationen oder große Systeme handelt.


Abschluss

PHP 8.4 führt mehrere Funktionen ein, die das Codieren einfacher und leistungsfähiger machen:

  • Eigenschafts-Hooks: Ersetzen Sie Getter- und Setter-Funktionen.
  • Asymmetrische Sichtbarkeit: Bessere Kontrolle über den Grundstückszugang.
  • Neue Array-Funktionen: Vereinfachen Sie gängige Array-Operationen.
  • Vereinfachte Objektinstanziierung: Sauberere Objekterstellung.
  • Abschaffung impliziter Nullable-Typen: Sichererer und klarerer Code.
  • Lazy Objects: Sparen Sie Ressourcen, indem Sie die Objekterstellung verzögern.

Diese Updates machen die Verwendung von PHP noch angenehmer, egal ob Sie Anfänger oder erfahrener Entwickler sind. Beginnen Sie noch heute mit der Erkundung von PHP 8.4!

Das obige ist der detaillierte Inhalt vonWas ist neu in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage