Veraltete Features

PHP-Kern

Implementierung von Serializable ohne __serialize() und __unserialize()

Sofern keine Unterstützung für PHP-Versionen vor 7.4 erforderlich ist, sollten nur diese beiden magischen Methoden implementiert werden, andernfalls sollten sowohl Schnittstellenmethoden als auch magische Methoden implementiert werden.

Übergabe von null an den Parameter einer eingebauten Funktion, der null nicht erlaubt

Es wird empfohlen, null nicht mehr an skalare Parameter von eingebauten Funktionen zu übergeben. Andernfalls wird nun ein entsprechender Hinweis ausgegeben. Dieses Verhalten wurde eingeführt, um es an die Funktionsweise von benutzerdefinierten Funktionen anzugleichen, bei denen null-validierende Parameter zu diesem Zweck explizit markiert werden müssen.

<?php
var_dump
(str_contains("foobar"null));
// Veraltet: Die Übergabe von null an Parameter #2 ($needle) vom Typ
// string ist veraltet
?>

Implizite Umwandlungen von Float in Integer, die nicht kompatibel sind

Die implizite Umwandlung von Float in Integer, die zu einem Verlust an Genauigkeit führt, ist nun veraltet. Dies betrifft Array-Schlüssel, erzwungene Konvertierungen von Integer-Typen, und Operatoren, die mit Integern arbeiten.

<?php
$a 
= [];
$a[15.5]; // veraltet, da der Schlüsselwert die 0.5-Komponente verliert
$a[15.0]; // OK, weil 15.0 == 15
?>

Aufruf eines static-Elements bei einem Trait

Der Aufruf einer static-Methode oder der Zugriff auf eine static-Eigenschaft direkt in einem Trait ist veraltet. Auf statische Methoden und Eigenschaften sollte nur in einer Klasse zugegriffen werden, die den Trait verwendet.

Rückgabe eines nicht-Arrays von __sleep()

Die Rückgabe eines Wertes von __sleep(), der kein Array ist, erzeugt nun eine Fehlermeldung.

Rückgabe per Referenz aus einer void-Funktion

<?php
function &test(): void {}
?>
Eine solche Funktion ist widersprüchlich und gibt bereits folgende E_NOTICE-Meldung aus, wenn sie aufgerufen wird: Only variable references should be returned by reference.

Automatische Erstellung (Autovivifikation) von false

Autovivifikation ist der Prozess der automatischen Erstellung eines Arrays, wenn ein Wert hinzugefügt wird. Dies ist bei skalaren Werten verboten, jedoch war false eine Ausnahme. Diese Ausnahme ist nun veraltet.

<?php
$arr 
false;
$arr[] = 2;   // veraltet
?>

Hinweis:

Die Autovivifikation von null und undefinierten Werten ist weiterhin erlaubt:

<?php
// Von undefiniert
$arr[] = 'ein Wert';
$arr['existiertNicht'][] = 2;
// Von null
$arr null;
$arr[] = 2;
?>

ctype

Überprüfung von Parametern, die keine Strings sind

Die Übergabe eines Parameters, der kein String ist, ist veraltet. In Zukunft wird der Parameter als String interpretiert und nicht mehr als ASCII-Codepunkt. Je nach beabsichtigtem Verhalten sollte der Parameter entweder nach String umgewandelt werden oder ein expliziter Aufruf von chr() erfolgen. Alle ctype_*()-Funktionen sind betroffen.

Date

Die Funktionen date_sunrise() und date_sunset() sind zugunsten von date_sun_info() veraltet.

Die Funktion strptime() ist veraltet. Stattdessen sollte date_parse_from_format() verwendet werden (für Locale-unabhängiges Parsen), oder IntlDateFormatter::parse() (für Locale-abhängiges Parsen).

Die Funktionen strftime() und gmstrftime() sind veraltet. Stattdessen sollte date() verwendet werden (für Locale-unabhängige Formatierung), oder IntlDateFormatter::format() (für Locale-abhängige Formatierung).

Filter

Die Filter FILTER_SANITIZE_STRING und FILTER_SANITIZE_STRIPPED sind veraltet.

Die INI-Direktive filter.default ist veraltet.

GD

Der Parameter num_points der Funktionen imagepolygon(), imageopenpolygon() und imagefilledpolygon() ist veraltet.

Hash

Die Funktionen mhash(), mhash_keygen_s2k(), mhash_count(), mhash_get_block_size() und mhash_get_hash_name() sind veraltet. Stattdessen sollten die hash_*()-Funktionen verwendet werden.

IMAP

Die Konstante NIL ist veraltet. Stattdessen sollte 0 verwendet werden.

Intl

Der Aufruf von IntlCalendar::roll() mit einem Boolean-Parameter ist veraltet. Anstelle von true und false sollten 1 bzw. -1 verwendet werden.

Multibyte-String

Der Aufruf von mb_check_encoding() ohne Parameter ist veraltet.

MySQLi

Die Eigenschaft mysqli_driver::$driver_version ist veraltet. Sie war bedeutungslos und überholt; stattdessen sollte PHP_VERSION_ID verwendet werden.

Der Aufruf von mysqli::get_client_info() oder mysqli_get_client_info() mit dem Parameter mysqli ist veraltet. Um die Versionsinformationen der Clientbibliothek zu erhalten, sollte mysqli_get_client_info() ohne Parameter aufgerufen werden.

Die Methode mysqli::init() ist veraltet. Der Aufruf von parent::init() sollte durch parent::__construct() ersetzt werden.

OCI8

Die INI-Direktive oci8.old_oci_close_semantics ist veraltet.

ODBC

odbc_result_all() ist veraltet.

PDO

Der Abrufmodus PDO::FETCH_SERIALIZE ist veraltet.

PgSQL

Den pgsql_*()-Funktionen muss der Verbindungsparameter nun explizit übergeben werden.

SOAP

Die ssl_method-Option von SoapClient::__construct() ist zugunsten der SSL-Streamkontext-Optionen veraltet.

Standard

Der Aufruf von key(), current(), next(), prev(), reset() oder end() bei Objekten ist veraltet. Stattdessen sollte entweder zuerst get_mangled_object_vars() auf das Objekt angewendet werden oder es sollte ArrayIterator verwendet werden.

Die INI-Direktive auto_detect_line_endings ist veraltet. Falls nötig, sollten "\r"-Zeilenumbrüche stattdessen manuell bearbeitet werden.

Die Konstanten FILE_BINARY und FILE_TEXT sind veraltet. Sie hatten nie eine Auswirkung.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

Notizen-App: was ist eure - ich komm immer wieder auf Keep zurück...

Hallo liebe Community, guten Abend, Notizen-App: was ist eure - ich komm immer wieder auf Keep zurück... was ist eure beste NoteTaking App!? i ...

Geschrieben von dhubs am 22.12.2024 23:05:11
Forum: Off-Topic Diskussionen
How to overcome Safari's iframe cookie block?

To overcome Safari's iframe cookie block, you can use the SameSite=None; Secure cookie attribute in conjunction with a third-party domain that sup ...

Geschrieben von Joniemartinez am 21.12.2024 13:28:24
Forum: HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
Probleme mit speichern in Datenbank in französisch

Les erreurs fréquentes lors de l'enregistrement de données dans une base de données incluent des problèmes de connexion, des erreurs de syntax ...

Geschrieben von Alice12 am 18.12.2024 05:07:21
Forum: PHP Developer Forum
Gibt es eine API zum Abrufen von PHP-Code-Referenzen?

PHP.net bietet eine umfassende Online-Dokumentation für PHP. Es gibt keine offizielle API zum Abrufen von PHP-Dokumentationen direkt, aber du kan ...

Geschrieben von Alice12 am 18.12.2024 05:03:27
Forum: PHP Developer Forum