PHP Digest Nr. 151 (25. Februar - 11. März 2019)


Neue Auswahl mit Links zu Nachrichten und Materialien. In der Version: PHP-Updates, Laravel 5.8, Xdebug 2.7 und andere Versionen, 3 neue RFCs, 2 akzeptierte und ein Konzept von PHP Internals, ein Teil nützlicher Tools und vieles mehr.

Viel Spaß beim Lesen!



Nachrichten und Veröffentlichungen



PHP-Interna


  • [RFC] Saner String-to-Number-Vergleiche - In ihrem jüngsten RFC schlägt Nikita Popov vor, das Verhalten von == ändern und laxe Vergleiche weniger fehleranfällig zu machen. Insbesondere wird vorgeschlagen, den Vergleich von Zahlen nur zu verwenden, wenn die zu vergleichende Zeichenfolge tatsächlich eine numerische ist. Andernfalls wird die Nummer in eine Zeichenfolge konvertiert und die Zeichenfolge verglichen.

    Dieser Vorschlag beinhaltet eine Änderung des Verhaltens der Vergleichsoperatoren <=> , == != , > , >= , < , Und <= , switch , Funktionen wie in_array() , sort() und andere.

    Als Reaktion darauf gingen Ideen mit unterschiedlichem Grad an Radikalismus ein: aus der Einführung einer speziellen Flaggenerklärung declare('strict_comparison=1'); , was alles == in === , vor dem Angebot , == im Allgemeinen abzubrechen .

    In der Zwischenzeit wird in 7.4 wahrscheinlich eine Warnung ausgegeben, wenn das Ergebnis des Vergleichs von dem abweicht, was in PHP 8 erwartet wird.
  • [RFC] Zulässiges Leerzeichen in numerischen Zeichenfolgen zulassen - Ein weiterer Vorschlag zur Verbesserung der Konsistenz, jedoch durch Schwächung. Es wird vorgeschlagen, Leerzeichen am Ende numerischer Zeilen zuzulassen, dh "123 " == " 123" und alle anderen Operationen funktionieren, sowie für Zeilen mit führenden Leerzeichen.
  • [RFC] Konsistente Typfehler für interne Funktionen - Der Vorschlag wurde akzeptiert. In PHP 8 lösen die integrierten Funktionen einen TypeError aus, wenn Parameter des falschen Typs übergeben werden, und geben dementsprechend nicht null zurück.
  • [RFC] Schwache Referenzen - Vorschlag zur Implementierung von Schwachstellen akzeptiert.
  • [RFC] Gesperrte Klassen - Es wird vorgeschlagen, ein neues locked Schlüsselwort für Klassen einzuführen. Solche Klassen werden für die dynamische Verwendung von Eigenschaften geschlossen, dh Sie können nicht auf nicht deklarierte Eigenschaften zugreifen:
    Versteckter Text
     locked class TestClass { public $definedProp; } $t = new testClass(); $t->definedProp = "OK"; echo $t->definedProp; unset($t->definedProp); echo $t->nonExistentProp; // Error $t->nonExistentProp = "Not OK"; // Error unset($t->definedProp); // Error 
  • Video PHP Internals News: Episode 1 - Neuer Podcast des Autors Xdebug Derick Rethans. In der ersten Ausgabe ein Gespräch mit Nikita Popov.
  • Erlaube das Auslösen von __toString () - PR von Nikita mit einer Lösung für eines der alten PHP-Probleme - die Unfähigkeit, Ausnahmen in __toString .
  • Listenverständnis - Ein Konzept von Sarah Goleman mit der Implementierung des Listenverständnisses für PHP. Die Syntax ist weniger elegant als in Python, sieht aber interessant aus:
     $a = [1, 2, 3]; $mul = 3; $c = [ for $a as $v yield $mul * $v use ($mul) ]; 

Die Werkzeuge



Symfony



Laravel



Yii



Async php



Lernmaterialien



Vielen Dank für Ihre Aufmerksamkeit!

Wenn Sie einen Fehler oder eine Ungenauigkeit bemerken, informieren Sie mich bitte per PM .
Fragen und Vorschläge schreiben Sie an Mail oder Twitter .

Weitere Neuigkeiten und Kommentare zum PHP Digest Telegram Channel.

Link senden
Suchlinks für alle Digests
Vorherige Ausgabe: PHP Digest Nr. 150

Source: https://habr.com/ru/post/de443220/


All Articles