Auf dem Weg zur finalen Version PHP 7.4

PHP 7.4beta1 erschienen: Neue Deprecations und BugFixes
Keine Kommentare

Kürzlich stimmte das PHP-Entwicklerteam über neue Deprecations für PHP 7.4 ab, was Ende November veröffentlicht werden soll. Nun ist die erste Betaversion erschienen und die Features sind somit festgesetzt. Die aktuelle Version stellt neben den frisch gewählten Deprecations auch einige BugFixes bereit.

Das PHP-Entwicklerteam hat die erste Betaversion zu PHP 7.4 veröffentlicht. Damit stehen die Features fest. PHP 7.4beta1 bringt neben neuen Deprecations auch einige BugFixes mit. Wir schauen auf die Änderungen der neuen Version.

PHP 7.4beta1 mit neuen Deprecations

Bisher ermöglichte PHP, dass sowohl eckige Klammern als auch geschweifte Klammern austauschbar für den Zugriff auf Array-Elemente und String Offsets verwendet werden konnten. Ein Beispiel aus dem PHP RFC aus den PHP-Internals zur Veranschaulichung:

$array = [1, 2];
echo $array[1]; // prints 2
echo $array{1}; // also prints 2
$string = "foo";
echo $string[0]; // prints "f"
echo $string{0}; // also prints "f"

Das führte teils zu Verwirrungen und Problemen. Beispielsweise konnten bisher geschweifte Klammern nicht verwendet werden, um ein Element in einen Array zu schreiben:

$array[] = 3;
echo $array[2]; // prints 3

$array{} = 3; // Parse error: syntax error, unexpected '}'

Auch die Erstellung eines Arrays war mit der geschweiften Klammer-Syntax nicht möglich:

$array = [1, 2]; // works

$array = {1, 2}; // Parse error: syntax error, unexpected '{'

Eine Verwendung für eine Listenzuordnung gestaltete sich ebenfalls schwierig:

[$one, $two] = $array; // works

{$one, $two} = $array; // Parse error: syntax error, unexpected ','

Aufgrund dessen wird die Syntax der geschweiften Klammern bei der Verwendung von Arrays oder String Offsets mit der erschienenen Beta nun als deprecated markiert und somit nicht mehr für die Nutzung empfohlen.

PHP 7.4beta 1 bringt weitere Deprecations mit, über die das PHP-Entwicklerteam erst in der vergangenen Woche abgestimmt hat (wir haben berichtet). Die dort aufgeführten 14 Methoden werden in PHP 7.4 als veraltet markiert:

  • The real type
  • Magic quotes legacy
  • array_key_exists() with objects
  • FILTER_SANITIZE_MAGIC_QUOTES filter
  • Reflection export() methods
  • mb_strrpos() with encoding as 3rd argument
  • implode() parameter order mix
  • Unbinding $this from non-static closures
  • hebrevc() function
  • convert_cyr_string() function
  • money_format() function
  • ezmlm_hash() function
  • restore_include_path() function
  • allow_url_include ini directive

In PHP 7.4beta1 werden alle genannten Methoden nicht mehr zur Nutzung empfohlen und in Version 8.0 endgültig entfernt.

BugFixes in PHP 7.4beta1

Neben den genannten Deprecations hält die Betaversion auch einige Bugfixes bereit. Gemäß der Release Note kam es im built-in webserver zu einem Segmatation Fault. Dieses Problem soll mit der vorliegenden Beta behoben worden sein.

Ein weiteres Problem trat auf, wenn PHP über ein CGI ausgeführt wurde. PHP versuchte nach einem Shebang (#!) zu suchen. Trat in der ersten Zeile ein Hash-Zeichen auf, prüfte PHP nicht, ob das folgende Zeichen ein Ausrufezeichen ist und somit eine Kombination aus einem Hash- und einem Ausrufezeichen (#!). PHP übersprang laut Bug-Report die entsprechende Zeile und ignorierte den PHP-Code.

Test script:
---------------
#
Second line.

Expected result:
----------------
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-type: text/html

#Hello World
Second line.

Actual result:
--------------
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-type: text/html

Second line.

Des Weiteren gab es den Bug, dass PHP das erste Byte eines Programms verschluckt hat, wenn dieses aus einer Prozess Substitution stammte (Bug #78066). Mit der ersten Beta soll dieser Bug behoben worden sein. Nähere Informationen über die aktuelle Version können der Release Note entnommen werden.

Auf beta1 folgt beta2

PHP 7.4 ist für den 28. November geplant. Nach der nun veröffentlichten ersten Beta soll PHP 7.4beta2 am 08. August 2019 erscheinen. Der Timetable zu PHP 7.4 findet sich im PHP-Wiki.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -