Sonstige Änderungen
Änderungen in SAPI-Modulen
Apache2Handler
Das PHP-Modul wurde von php7_module
in
php_module
umbenannt.
Geänderte Funktionen
Reflection
Die Ergebnisse von
ReflectionClass::getReflectionConstants() können
nun mit dem neuen Parameter filter
gefiltert
werden. Drei neue Konstanten wurden hinzugefügt, die damit verwendet
werden können:
ReflectionClassConstant::IS_PUBLIC
ReflectionClassConstant::IS_PROTECTED
ReflectionClassConstant::IS_PRIVATE
Standard
Die mathematischen Funktionen abs(),
ceil(), floor() und
round() berücksichtigen die
Direktive strict_types
nun korrekt. Zuvor wurde der erste Parameter auch im strikten
Typisierungsmodus erzwungen.
Zip
-
Die Methoden ZipArchive::addGlob() und ZipArchive::addPattern() akzeptieren mehr Werte im Parameter-Array
options
:flags
comp_method
comp_flags
env_method
enc_password
-
Die Methoden ZipArchiv::addEmptyDir(), ZipArchiv::addFile() und ZipArchive::addFromString() haben den neuen Parameter
flags
. Damit können die Namenskodierung (ZipArchive::FL_ENC_*
) und die Ersetzung von Einträgen (ZipArchive::FL_OVERWRITE
) verwaltet werden. -
Die Methode ZipArchive::extractTo() stellt nun die Änderungszeit der Dateien wieder her.
Sonstige Änderungen bei Erweiterungen
CURL
-
Die Erweiterung CURL benötigt jetzt mindestens libcurl 7.29.0.
-
Der veraltete Parameter
version
der Funktion curl_version() wurde entfernt.
Datum und Zeit
Die Klasse DatePeriod implementiert nun IteratorAggregate anstelle von Traversable.
DOM
Die Klassen DOMNamedNodeMap und DOMNodeList implementieren nun IteratorAggregate anstelle von Traversable.
Intl
Die Klassen IntlBreakIterator und ResourceBundle implementieren nun IteratorAggregate anstelle von Traversable.
Enchant
Die Erweiterung enchant verwendet nun standardmäßig libenchant-2, falls verfügbar. libenchant Version 1 wird noch unterstützt, ist aber veraltet und könnte in Zukunft entfernt werden.
GD
-
Der Parameter
num_points
der Funktionen imagepolygon(), imageopenpolygon() und imagefilledpolygon() ist nun optional, d. h. diese Funktionen können nun entweder mit 3 oder mit 4 Parametern aufgerufen werden. Falls der Parameter weggelassen wird, wird er anhand voncount($points)/2
berechnet. -
Die Funktion imagegetinterpolation() wurde hinzugefügt, um die aktuelle Interpolationsmethode zu ermitteln.
JSON
Die Erweiterung JSON kann nicht mehr deaktiviert werden und ist immer ein integraler Bestandteil eines jeden PHP-Builds, ähnlich wie die Erweiterung date.
MBString
Die Unicode-Datentabellen wurden auf Version 13.0.0 aktualisiert.
PDO
PDOStatement implementiert nun IteratorAggregate anstelle von Traversable.
LibXML
Die minimal erforderliche libxml-Version ist nun 2.9.0. Dies bedeutet, dass das Laden von externen Entities nun garantiert standardmäßig deaktiviert ist und keine zusätzlichen Maßnahmen zum Schutz vor XXE-Angriffen ergriffen werden müssen.
MySQLi / PDO-MySQL
-
Wenn mysqlnd nicht verwendet wird (dies ist die standardmäßige und empfohlene Option), ist die niedrigste unterstützte libmysqlclient-Version nun 5.5.
-
mysqli_result implementiert nun IteratorAggregate anstelle von Traversable.
PGSQL / PDO-PGSQL
Die Erweiterungen PGSQL und PDO-PGSQL benötigen nun mindestens libpq 9.1.
Readline
Der Aufruf von readline_completion_function() vor dem Start der interaktiven Eingabeaufforderung (z. B. in auto_prepend_file) überschreibt nun die standardmäßige Vervollständigungs-Funktion der interaktiven Eingabeaufforderung. Zuvor funktionierte readline_completion_function() nur, wenn sie nach dem Start der interaktiven Eingabeaufforderung aufgerufen wurde.
SimpleXML
SimpleXMLElement implementiert nun RecursiveIterator und übernimmt die Funktionalität von SimpleXMLIterator. SimpleXMLIterator ist eine leere Erweiterung von SimpleXMLElement.
Änderungen bei der Handhabung von INI-Dateien
-
com.dotnet_version ist eine neue INI-Direktive, um die Version des .NET-Frameworks festzulegen, das für dotnet-Objekte verwendet wird.
-
zend.exception_string_param_max_len ist eine neue INI-Direktive, um die maximale Länge einer Zeichenkette in einem Parameter eines stringifizierten Stackstraces festzulegen.
EBCDIC
EBCDIC-Targets werden nicht mehr unterstützt, wobei es eher unwahrscheinlich ist, dass sie überhaupt noch funktionieren.
Performance
-
Der Erweiterung opcache wurde ein Just-In-Time- (JIT) Compiler hinzugefügt.
-
Die Funktion array_slice() durchsucht bei einem Array ohne Lücken nicht mehr das gesamte Array, um den Start-Offset zu finden. Dies kann die Laufzeit der Funktion bei großen Offsets und kleinen Längen erheblich reduzieren.
-
Wenn die Locale von
LC_CTYPE
"C"
ist (was der Standard ist), verwendet die Funktion strtolower() nun die SIMD-Implementierung.