Heim > Schlagzeilen > Hauptteil

PHP7.4 neue Features und veraltete Funktionen (Zusammenfassung)

藏色散人
Freigeben: 2019-12-26 14:48:37
nach vorne
5393 Leute haben es durchsucht

PHP7.4 neue Features und veraltete Funktionen (Zusammenfassung)

Zusammenfassung neuer und veralteter Funktionen in PHP7.4

Neue Funktionen in PHP7.4

PHP7.4 wurde am 28. des letzten Monats veröffentlicht. Hat einige neue Funktionen gebracht. Dadurch können wir weniger Code schreiben.

1. Qualifizierten Typ zu Attributen hinzufügen

<?php
class User {
  public int $age;
  public string $name
}  
$user = new User();
$user->age = 10;
$user->name = "张三";
//error
$user->age = "zhang";//需要传递int
Nach dem Login kopieren

2. Pfeilfunktion

Diese Funktion bezieht sich im Wesentlichen auf die Syntax von ES6 in Js. Dadurch können wir weniger Code schreiben. Wenn Ihr Code die Funktion fn hat. Kann in Konflikt geraten

<?php
$factor = 10;
$nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30]
//之前的写法
$nums = array_map(function($num)use($factor){
  return $num * $factor;
},[1,2,3])
Nach dem Login kopieren

3. Begrenzte Rückgabetyp-Kovarianz und Parametertyp-Kontravarianz

Vollständige Kovarianz-/Kontravarianzunterstützung wird nur bei Verwendung von Autoloading bereitgestellt. Innerhalb einer einzelnen Datei können nur nichtzyklische Typreferenzen verwendet werden, da alle Klassen verfügbar sein müssen, bevor sie referenziert werden.

<?php
class A {}
class B extends A {}
class Producer {
    public function method(): A {}
}
class ChildProducer extends Producer {
    public function method(): B {}
}
?>
Nach dem Login kopieren

Array entpacken

Verwenden Sie den Spread-Operator..., um das Array zu entpacken. Diese Funktion sollte von js übernommen werden. Siehe Beispiel

<?php
$parts = [&#39;apple&#39;, &#39;pear&#39;];
$fruits = [&#39;banana&#39;, &#39;orange&#39;, ...$parts, &#39;watermelon&#39;];//[&#39;banana&#39;, &#39;orange&#39;, &#39;apple&#39;, &#39;pear&#39;, &#39;watermelon&#39;];
//老的写法
$fruits = array_merge([&#39;banana&#39;, &#39;orange&#39;],$parts,[&#39;watermelon&#39;]);
Nach dem Login kopieren

5. Null-Koaleszenzoperator-Zuweisung

<?php
$array[&#39;key&#39;] ??= computeDefault();
// 老的写法
if (!isset($array[&#39;key&#39;])) {
    $array[&#39;key&#39;] = computeDefault();
}
?>
Nach dem Login kopieren

6. Numerisches Literaltrennzeichen

Numerische Literale können Unterstriche zwischen Zahlen enthalten.

<?php
6.674_083e-11; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary
?>
Nach dem Login kopieren

Auslösen von Ausnahmen von __toString() zulassen

In der Vergangenheit führte dies zu einem schwerwiegenden Fehler, der bei der String-Konvertierung behoben werden konnte Schwerwiegende Fehler wurden in Fehlerausnahmen umgewandelt.

8. Filter

FILTER_VALIDATE_FLOAT hinzugefügt

<?php
  filter_var(1.00,FILTER_VALIDATE_FLOAT);
filter.filters.validate
Nach dem Login kopieren

9. strip_tags unterstützt Arrays

<?php
  strip_tags($str,[&#39;p&#39;,&#39;a&#39;,&#39;div&#39;]);
//老的写法
strip_tags($str,"<p><a><div>");
Nach dem Login kopieren

Veraltete Funktion

1. Verschachtelter ternärer Operator ohne explizite Klammern

<?php
1 ? 2 : 3 ? 4 : 5;   // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok
?>
Nach dem Login kopieren

Während des Interviews muss ich mir endlich keine Sorgen mehr machen, Sie nach dem Ergebnis zu fragen. Tatsächlich schreibt in der Produktion nicht jeder so.

2. Greifen Sie mit geschweiften Klammern auf den Array-Index zu

<?php
$arr = ["a"=>"111"];
$index = "a";
$arr{$index}//废弃
$arr[$index];
Nach dem Login kopieren

Um ehrlich zu sein, ist dies das erste Mal, dass ich es gesehen habe, daher wurde es verworfen, was bedeutet, dass es niemand auf diese Weise verwenden wird .

3. reelle und is_reale Zahlen

<?php
  $num = "";
  $a = (real) $num;//废弃
$a = (float) $num;
Nach dem Login kopieren

4. Das Schlüsselwort parent wird in einer Klasse ohne übergeordnete Klasse verwendet.

Die Verwendung von parent in einer Klasse ohne übergeordnete Klasse wird durchgeführt Kompilierungsfehler verursachen.

<?php
  class Test{
  public function index() 
  {
    return parent::index();//编译错误
  }
}
Nach dem Login kopieren

5. Money_format-Funktion

money_format ist veraltet und wird durch numberFormater ersetzt

6. Entfernte Erweiterungen

1.Firebird/Interbase

2.Recode

3.WDDX

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage