Heim >Schlagzeilen >PHP 7.4 wird voraussichtlich im Dezember 2019 veröffentlicht

PHP 7.4 wird voraussichtlich im Dezember 2019 veröffentlicht

藏色散人
藏色散人Original
2019-03-27 11:33:306549Durchsuche

PHP 7.4 wird möglicherweise im Dezember 2019 veröffentlicht. Diese Seite wird regelmäßig aktualisiert.

<strong>Preloading</strong><strong>Preloading</strong> rfc

Preloading (Preloading) ist eine erstaunliche Ergänzung zum PHP-Kern, die es bringen kann einige wesentliche Leistungsverbesserungen.

Kurz gesagt: Wenn Sie heute ein Framework verwenden, müssen dessen Dateien bei jeder Anfrage geladen und neu kompiliert werden. Durch das Vorladen kann der Server PHP-Dateien beim Start in den Speicher laden und sie für alle nachfolgenden Anforderungen dauerhaft verfügbar machen.

Die erhöhte Leistung hat natürlich ihren Preis: Ändert sich die Quelle der vorinstallierten Dateien, muss der Server neu gestartet werden.

<code><strong>Typed properties</strong>Typisierte Eigenschaften rfc

Klassenvariablen können typabhängig sein:

class A
{
    public string $name;
    
    public Foo $foo;
}

Update : Bisher wurden typisierte Eigenschaften zusammengeführt, was sie für PHP 7.4 bestätigt.

<strong>Improved type variance</strong><strong>Verbesserte Typvarianz</strong>(verbesserte Typvarianz) Ich habe schon früher über das Typsystem von PHP gelesen, daher ist es schön, einige davon zu sehen Verbesserungen am PHP-Kern.

Typunterschiede sind ein Thema, das einen eigenen Blogbeitrag verdient.

Kurz gesagt: Sie können den

Rückgabetyp

class ParentType {}
class ChildType extends ParentType {}

class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}

class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}
covariant und

verwenden Parameter.

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}

class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}
contravariantUpdate: Der RFC befindet sich derzeit in der Abstimmungsphase, aber es sieht so aus, als würde er ohne Probleme durchgehen.

Foreign Function Interface

<strong>Foreign Function Interface</strong> (Foreign Function Interface) rfc

Foreign Function Interface, Kurz gesagt, FFI ermöglicht den Aufruf von C-Code aus dem Userland. Das bedeutet, dass PHP-Erweiterungen in reinem PHP geschrieben werden können.

Es ist erwähnenswert, dass dies ein komplexes Thema ist. Um diese Funktion korrekt nutzen zu können, benötigen Sie noch C-Kenntnisse.

<p>Null<code><strong>Null</strong>

Merge-Zuweisungsoperator rfc

Tut dies nicht:

$data[&#39;date&#39;] = $data[&#39;date&#39;] ?? new DateTime();

Sie können dies tun:

$data[&#39;date&#39;] ??= new DateTime();

UPDATE: Diese Funktion ist jetzt in PHP 7.4 integriert.

Benutzerdefinierte Objektserialisierung rfc

Dieser RFC fügt zwei neue magische Methoden hinzu: __serialize und __unserialize. Die Unterschiede zwischen diesen Methoden und den Methoden __sleep und __wakeup werden im RFC erläutert.

Update: RFC genehmigt. Diese Funktion wird in PHP 7.4 hinzugefügt.

<code><strong>No more narrow margins</strong>Keine schmalen Ränder mehr rfc

Technisch gesehen ist dies kein PHP 7.4-bezogenes Update, aber es ist definitiv so erwähnenswert. Die Abstimmungsregeln für RFCs haben sich geändert: Zur Verabschiedung ist immer eine Zweidrittelmehrheit erforderlich.

<strong>Reflection for references</strong> <a href="https://wiki.php.net/rfc/reference_reflection" target="_blank">Reflection für Referenzen</a>

rfc

Bibliotheken wie der Var-Dumper von Symfony sind stark auf die Reflection-API angewiesen, um einen zuverlässigen Dump durchzuführen Variablen. Zuvor gab es keine ordnungsgemäße Reflexionsunterstützung für Referenzen, was dazu führte, dass diese Bibliotheken auf Hacks angewiesen waren, um Referenzen zu erkennen. ReflectionReference

PHP 7.4 hat die Klasse

hinzugefügt, um dieses Problem zu lösen.

Update: RFC bestanden, Änderungen für PHP 7.4 bestätigt. mb_str_split 

rfc

hinzugefügt Diese Funktion bietet die gleiche Funktionalität wie str_split, jedoch für Multibyte-Strings. ext-hashImmer aktiviert

rfc

Wie der Titel schon sagt, ist diese Erweiterung jetzt dauerhaft in allen PHP-Installationen verfügbar. PEARStandardmäßig nicht aktiviert

Da PEAR nicht mehr aktiv gepflegt wird, hat das Kernteam beschlossen, seine Standardinstallation mit PHP 7.4 zu entfernen. HashingPassword Hash () Registry

rfc

ändert intern die Art und Weise, wie die Hash-Bibliothek verwendet wird, sodass Benutzer können sie einfacher verwenden. <strong>ext / wwdx</strong> VERALTEText/wwdx

rfc

Dieses Datenaustauschformat war noch nie verfügbar Standardisiert, seine Erweiterungen sind jetzt veraltet.

Upgrade von abwärtsinkompatiblen Änderungen

Beim Upgrade einer PHP-Version sollten Sie immer die

vollständige Upgrade-Dokumentation

lesen.

parent::Hier sind einige der abwärtsinkompatiblen Änderungen hervorgehoben:

• Referenzen in einer Klasse ohne übergeordnete Klasse führen zu einem Kompilierungsfehler anstelle eines Laufzeitfehlers.

• Der Aufruf von var_dump für eine DateTime- oder datetimevariable-Instanz hinterlässt keine zugänglichen Eigenschaften mehr für das Objekt.

openssl_random_pseudo_bytes löst im Fehlerfall eine Ausnahme aus.

• Der Versuch, eine PDO- oder PDOStatement-Instanz zu serialisieren, generiert eine Ausnahme anstelle von PDOException.

• Der Aufruf von ArrayObject für eine Instanz von get_object_vars() gibt die Eigenschaften von ArrayObject selbst zurück und nicht den Wert des umschlossenen Arrays oder Objekts. Beachten Sie, dass (Array-)Umsetzungen nicht betroffen sind.

Übersetzt von: https://stitcher.io/blog/new-in-php-74#reflection-for-references-rfc

Verwandte Empfehlungen:

Der Sicherheitsunterschied zwischen PHP7 und PHP5 (Beispiel)

Änderungen durch PHP7s Abstract Syntax Tree (AST)

Ausführungsprinzip der PHP7-Sprache (PHP7-Quellcode-Analyse)

Stellungnahme:
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