Heim  >  Artikel  >  PHP 7.4beta1 veröffentlicht: neue veraltete Versionen und Fehlerbehebungen

PHP 7.4beta1 veröffentlicht: neue veraltete Versionen und Fehlerbehebungen

藏色散人
藏色散人Original
2019-07-27 10:34:414137Durchsuche

Kürzlich stimmte das PHP-Entwicklungsteam über eine neue veraltete Version von PHP 7.4 ab, die Ende November veröffentlicht werden soll. Jetzt ist die erste Beta-Version mit festem Funktionsumfang erschienen. Die aktuelle Version bietet nicht nur neu ausgewählte Deprecations, sondern auch einige BugFix.

Das PHP-Entwicklungsteam hat die erste Beta-Version von PHP 7.4 veröffentlicht. Dies bestimmt die Funktionalität. PHP 7.4beta1 bringt neben neuen Deprecations auch einige BugFixes. Wir arbeiten an Änderungen für die neue Version.

PHP 7.4beta1 weist neue veraltete Versionen auf

Zuvor erlaubte PHP die austauschbare Verwendung von eckigen Klammern und geschweiften Klammern, um auf Array-Elemente und String-Offsets zuzugreifen. Beispiel aus PHPs internem PHP RFC 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"

Dieser Teil sorgt für Verwirrung und Probleme. Beispielsweise können geschweifte Klammern nicht zum Schreiben von Elementen in ein Array verwendet werden:

$array[] = 3;
echo $array[2]; // prints 3
 
$array{} = 3; // Parse error: syntax error, unexpected '}'

Arrays können nicht mit der Syntax für geschweifte Klammern erstellt werden:

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

Es stellt sich heraus, dass die Verwendung für die Listenzuordnung schwierig ist :

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

Aus diesem Grund ist die Syntax für geschweifte Klammern jetzt als veraltet markiert und wird daher nicht empfohlen, wenn Array- oder String-Offsets aus der veröffentlichten Beta verwendet werden.

PHP 7.4 Beta 1 bringt weitere Abwertungen mit sich, über die das PHP-Entwicklungsteam letzte Woche abgestimmt hat. 14 der dort aufgeführten Methoden waren in PHP 7.4 veraltet:

真正的类型
魔术引用遗产
array_key_exists()包含对象
FILTER_SANITIZE_MAGIC_QUOTES过滤器
反射export()方法
mb_strrpos(),编码为第三个参数
implode()参数顺序组合
从非静态闭包中取消绑定$ this
hebrevc()函数
convert_cyr_string()函数
money_format()函数
ezmlm_hash()函数
restore_include_path()函数
allow_url_include ini指令

In PHP 7.4beta1 waren alle genannten Methoden veraltet und wurden schließlich in Version 8.0 entfernt.

BugFix in PHP 7.4beta1

Zusätzlich zu den oben genannten Verwerfungen hat die Beta-Version auch einige Fehlerbehebungen vorbereitet. Den Versionshinweisen zufolge liegt ein Segmationsfehler im integrierten Webserver vor. Dieses Problem sollte mit dieser Beta gelöst werden.

Ein weiteres Problem entsteht, wenn PHP über CGI ausgeführt wird. PHP sucht nach einem Shebang (#!). Wenn in der ersten Zeile ein Hash steht, prüft PHP nicht, ob das Folgende ein Ausrufezeichen ist, es also eine Kombination aus Hash und Ausrufezeichen (#!) ist. Laut Fehlerbericht hat PHP die entsprechenden Zeilen übersprungen und den PHP-Code ignoriert.

Test script:
---------------
#<!--?php echo "Hello World\n"; ?-->
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.

Darüber hinaus gibt es einen Fehler, bei dem PHP das erste Byte des Programms frisst, wenn es aus einer Prozessersetzung stammt (Fehler #78066). Die erste Beta-Version behebt diesen Fehler. Weitere Informationen zur aktuellen Version finden Sie in den Versionshinweisen.

Auf Beta1 folgt Beta2

PHP 7.4 soll am 28. November veröffentlicht werden. Nach der ersten Beta-Version wird PHP 7.4beta2 am 8. August 2019 veröffentlicht. Den Zeitplan für PHP 7.4 finden Sie im PHP-Wiki.

Dieser Artikel wurde übersetzt von: https://entwickler.de/online/php/php-7-4beta1-deprecations-579902190.html

Stellungnahme:
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