Inhaltsverzeichnis
Verbesserung von schreibgeschützten Klassen
Typisierte Klassenkonstanten
#[Override] 属性
数组中的负索引
匿名只读类
新函数 json_validate
Randomizer 增强
动态类常量获取
更具针对性的日期/时间异常
优化了 unserialize() 错误处理
range()-Funktionsverbesserungen
特征和静态属性
堆栈溢出检测
新函数 mb_str_pad
Magische Methodenabschlüsse und benannte Parameter
Invariante konstante Sichtbarkeit
Abwertungen
Heim Backend-Entwicklung PHP8 Große Veröffentlichung von PHP 8.3: Innovation und Verbesserung, die Zukunft gestalten

Große Veröffentlichung von PHP 8.3: Innovation und Verbesserung, die Zukunft gestalten

Nov 24, 2023 am 11:01 AM
php

PHP 8.3 wurde am 23. November 2023 veröffentlicht und markiert einen weiteren wichtigen Schritt in der Entwicklung der Sprache. Diese Version führt viele neue Funktionen, Leistungsverbesserungen und veraltete Funktionen ein, die das PHP-Entwicklungserlebnis verbessern sollen. In diesem umfassenden Leitfaden befassen wir uns eingehend mit diesen Updates und bieten Einblicke, Tipps und kreative Codebeispiele, die Ihnen dabei helfen, PHP 8.3 anzupassen und das Beste aus ihm herauszuholen.

Verbesserung von schreibgeschützten Klassen

PHP 8.3 hat das Klonverhalten von schreibgeschützten Klassen geändert, um eine Neuinitialisierung schreibgeschützter Eigenschaften während des Klonens zu ermöglichen. Diese Änderung befasst sich mit einem bestimmten Randfall beim Deep Cloning. Sehen Sie sich das folgende Beispiel an:

class Article {
    public readonly DateTime $publishedOn;
    public function __construct(DateTime $publishedOn) {
        $this->publishedOn = $publishedOn;
    }
    public function __clone() {
        // PHP 8.3 允许
        $this->publishedOn = new DateTime();
    }
}
Nach dem Login kopieren

Diese Änderung ermöglicht mehr Flexibilität bei der Verwaltung schreibgeschützter Eigenschaften, insbesondere beim Kopieren von Objekten mit komplexen Strukturen.

Typisierte Klassenkonstanten

PHP 8.3 ermöglicht Entwicklern die Angabe von Typen für Klassenkonstanten, wodurch die Typsicherheit verbessert und der Code sauberer wird. Zum Beispiel:

class Config {
    const API_KEY = 'your-api-key';
}
Nach dem Login kopieren

Diese Funktion erhöht die Robustheit von Klassenkonstanten und macht sie zu einem integralen Bestandteil des Klassenvertrags.

#[Override] 属性

PHP 8.3 中的 #[Override]属性用于声明某个方法有意重写父方法。该属性可在重命名或删除父方法时捕获错误,从而提高代码质量。例如:

abstract class BaseClass
{
    public function defaultMethod(): int
    {
        return 1;
    }
}
final class DerivedClass extends BaseClass
{
    #[Override]
    public function defaultMethod(): int
    {
        return 2;// 故意重写
    }
}
Nach dem Login kopieren

属性增加了额外的安全层,确保您的覆盖始终是有意且可识别的。

数组中的负索引

PHP 8.3 对数组处理负索引方式进行了改进。在以前的版本中,如果使用负索引将一个项目添加到空数组,然后添加另一个项目,则第二个项目会从 0 开始。在 PHP 8.3 中,第二个项目将放置在下一个负索引处,即 -1。例如:

$array = [];
$array[-1] = '第一个';
$array[] = '第二';
var_export($array); // [&#39;first&#39;, &#39;second&#39;] 在 PHP < 8.3 中,[&#39;first&#39;, &#39;second&#39;] 在 PHP 8.3 中
Nach dem Login kopieren

一变化使得负指数的处理更加可预测和一致。

匿名只读类

PHP 8.3 引入了对匿名类标记为只读的支持,这为动态创建不可变对象提供了更大的灵活性。例如:

$anonymousClass = new readonly class {
    public function __construct(
        public string $name = &#39;Anonymous&#39;,
    ) {}
};
Nach dem Login kopieren

增强功能使只读类在各种编程场景中更加通用,扩大了其应用范围。

新函数 json_validate

PHP 8.3 新增的 json_validate() 函数提供了一种节省内存的方法来检查字符串是否为有效的 JSON。此函数特别适用于需要验证 JSON 而不对其进行解码的场景。它的工作原理如下:

$jsonString = &#39;{"姓名": "小明", "年龄": 20}&#39;;
$isJsonValid = json_validate($jsonString);
Nach dem Login kopieren

该函数简化了 JSON 验证,使其更加高效和简单。

Randomizer 增强

PHP 8.3 对 PHP 8.2 中引入的 Randomizer 类进行了增强,新增了从字符串生成随机字节以及获取指定范围内的随机浮点数的方法。例如:

$randomizer = new Randomizer();
$randomBytes = $randomizer->getBytesFromString(&#39;abcdef&#39;, 4);
$randomFloat = $randomizer->getFloat(0.0, 1.0);
Nach dem Login kopieren

新方法扩展了 Randomizer 类的功能,使其能够生成更丰富、更灵活的随机数据。

动态类常量获取

PHP 8.3 新增了动态获取类常量的语法,使代码在使用常量时更加灵活、易读。例如:

class Setting {
  const MODE = &#39;产生&#39;;
  public static function getCurrentMode() {
    return static::MODE;
  }
}
$currentMode = Setting::getCurrentMode();
Nach dem Login kopieren

这种语法简化了动态访问类常量的过程,增强了代码的可读性和可维护性。

更具针对性的日期/时间异常

PHP 8.3 对日期和时间函数的异常处理进行了改进,新增了针对特定错误情况的专用异常。此改进使错误报告更加描述性和准确,从而提高了调试和处理日期/时间相关问题的效率。

优化了 unserialize() 错误处理

PHP 8.3 中的 unserialize() 函数在遇到问题时始终抛出 E_WARNING 错误,从而提供更统一和可预测的错误处理。此更改简化了序列化场景中的调试和错误处理。

range()-Funktionsverbesserungen

PHP 8.3 für range()-Funktion hat viele Verbesserungen vorgenommen, einschließlich des Auslösens von range() 函数进行了多项改进,包括针对无效边界输入抛出 TypeError 异常,以及针对无效步长值抛出 ValueError 异常。这些改进使函数的行为更加直观和一致。

特征和静态属性

PHP 8.3 中,使用具有静态属性的特征将重新声明从父类继承的静态属性,为当前类创建单独的静态属性存储。此更改使特征中静态属性的行为与类中静态属性的行为一致。

堆栈溢出检测

PHP 8.3 添加了新的 INI 指令来检测堆栈溢出,从而防止分段错误。此功能增强了 PHP 应用程序的稳定性和可靠性,尤其是在复杂或递归场景中。

新函数 mb_str_pad

PHP 8.3 新增的 mb_str_pad()

Eigenschaften und statische Eigenschaften🎜🎜In PHP 8.3 werden durch die Verwendung einer Eigenschaft mit statischen Eigenschaften die von der übergeordneten Klasse geerbten statischen Eigenschaften neu deklariert, wodurch ein separater Speicher für statische Eigenschaften für die aktuelle Klasse erstellt wird. Durch diese Änderung stimmt das Verhalten statischer Eigenschaften in Merkmalen mit dem Verhalten statischer Eigenschaften in Klassen überein. 🎜🎜Stack-Overflow-Erkennung🎜🎜PHP 8.3 fügt eine neue INI-Direktive zur Erkennung von Stack-Überläufen hinzu, um Segmentierungsfehler zu verhindern. Diese Funktion erhöht die Stabilität und Zuverlässigkeit von PHP-Anwendungen, insbesondere in komplexen oder rekursiven Szenarien. 🎜🎜Neue Funktion mb_str_pad🎜🎜Neu in PHP 8.3 mb_str_pad() Die Funktion füllt die Lücke von Multi-Byte-String-Funktionen und eignet sich für die Verarbeitung von Multi-Byte-Codierungen wie UTF -8 Entscheidend. Diese Funktion stellt sicher, dass die Zeichenfolge unabhängig von der Codierung korrekt aufgefüllt wird. 🎜

Magische Methodenabschlüsse und benannte Parameter

PHP 8.3 verbessert die Flexibilität und Ausdruckskraft magischer Methoden, indem es Ihnen ermöglicht, Abschlüsse aus magischen Methoden zu erstellen und benannte Parameter an diese Abschlüsse zu übergeben, wodurch sie leistungsfähiger und vielseitiger werden.

Invariante konstante Sichtbarkeit

PHP 8.3 behebt den Fehler der ständigen Sichtbarkeitsprüfung bei der Implementierung von Schnittstellen. Diese Änderung gewährleistet eine konsistente Sichtbarkeit von Konstanten im Einklang mit den allgemeinen Prinzipien der Sichtbarkeit in PHP.

Abwertungen

Wie immer enthält PHP 8.3 eine Reihe von Abwertungen, um veraltete oder weniger effiziente Funktionen auslaufen zu lassen und die Sprache weiterzuentwickeln. Zu diesen Verwerfungen gehören Änderungen an Funktionen wie mb_strimwidth() 和 ldap_connect() .

Die Veröffentlichung von PHP 8.3 ist ein weiterer Meilenstein in der kontinuierlichen Weiterentwicklung und Verbesserung der PHP-Sprache. Neue Funktionen, Verbesserungen und veraltete Funktionen bieten Entwicklern mehr Tools und Möglichkeiten zum Schreiben effizienterer, robusterer und wartbarerer Codes. Achten Sie beim Erkunden und Übernehmen dieser Änderungen darauf, Ihre Anwendungen gründlich zu testen und über die neuesten Entwicklungen im PHP-Ökosystem auf dem Laufenden zu bleiben.

Das obige ist der detaillierte Inhalt vonGroße Veröffentlichung von PHP 8.3: Innovation und Verbesserung, die Zukunft gestalten. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles