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.
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));
// Deprecated: Passing null to parameter #2 ($needle) of type string
//             is deprecated
?>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
?>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.
Die Rückgabe eines Wertes von __sleep(), der kein Array ist, erzeugt nun eine Fehlermeldung.
<?php
function &test(): void {}
?>E_NOTICE-Meldung aus, wenn sie aufgerufen wird:
    Only variable references should be returned by reference.
   
  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
nullund undefinierten Werten ist weiterhin erlaubt:<?php
// Von undefiniert
$arr[] = 'ein Wert';
$arr['existiertNicht'][] = 2;
// Von null
$arr = null;
$arr[] = 2;
?>
    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.
   
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).
   Die Filter FILTER_SANITIZE_STRING und
   FILTER_SANITIZE_STRIPPED sind veraltet.
  
Die INI-Direktive filter.default ist veraltet.
   Der Parameter num_points der Funktionen
   imagepolygon(),
   imageopenpolygon() und
   imagefilledpolygon() ist veraltet.
  
   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.
  
   Die Konstante NIL ist veraltet.
   Stattdessen sollte 0 verwendet werden.
  
   Der Aufruf von IntlCalendar::roll() mit einem
   Boolean-Parameter ist veraltet. Anstelle von true und false sollten
   1 bzw. -1 verwendet werden.
  
Der Aufruf von mb_check_encoding() ohne Parameter ist veraltet.
   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.
Die INI-Direktive oci8.old_oci_close_semantics ist veraltet.
odbc_result_all() ist veraltet.
   Der Abrufmodus PDO::FETCH_SERIALIZE ist veraltet.
  
   Den pgsql_*()-Funktionen muss der Verbindungsparameter
   nun explizit übergeben werden.
  
   Die ssl_method-Option von
   SoapClient::__construct() ist zugunsten der
   SSL-Streamkontext-Optionen veraltet.
   
  
Der Aufruf von key(), current(), next(), prev(), reset() oder end() bei Objekten ist veraltet. Stattdessen sollte entweder das Objekt vorher mit get_mangled_object_vars() in ein Array umgewandelt werden oder es sollten die Methoden einer Klasse verwendet werden, die Iterator implementiert, z. B. ArrayIterator.
   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.
  
