Was ist neu in PHP 5.4

Hallo allerseits! Gemessen an den Gerüchten sollte am 19. Januar der nächste RC PHP 5.4 veröffentlicht werden. Es ist sogar möglich, dass es endgültig ist. Dies bedeutet, dass Sie sich schnell mit dem Studium neuer Möglichkeiten befassen müssen.

Seit einigen Jahren beschäftige ich mich professionell mit Webentwicklung und verwende PHP als Hauptserversprache. Nachdem ich von der Veröffentlichung eines so wichtigen Updates erfahren hatte, sammelte ich Informationen. Unter einer Katze Auswahlliste der wichtigsten Neuerungen.



Verunreinigungen


Die Hauptneuheit von 5.4 sind Verunreinigungen. Sie werden als Ersatz für die Mehrfachvererbung in PHP dienen. Jede Beimischung wird durch eine separate „Klasse“ über das Merkmal-Schlüsselwort definiert. Innerhalb der Verunreinigung können Methoden definiert werden, die in der Klasse verfügbar sind, mit der die Verunreinigungen verbunden werden. Verunreinigungen werden mit dem Gebrauchssprachenkonstrukt verbunden. Die Namen der Verunreinigungen werden durch Kommas getrennt angegeben und alle ihre Methoden werden innerhalb der Klasse verfügbar.

Stimmen die Namen der Klassenmethoden und Verunreinigungen überein, wird die Klassenmethode zur Prioritätsmethode. Leider bekommen wir in diesem Fall nicht einmal eine Nachricht.

Eine Verunreinigung hat über das übergeordnete Konstrukt immer Zugriff auf die Klasse, mit der sie verbunden ist.

class A {
  public function foo() {
    return 'foo';
  }
}
trait B {
  public function bar() {
    return parent::foo() . ' bar';
  }
}
class C extends A {
  use B;
}
$c = new C();
echo $c->foo(); // foo
echo $c->bar(); // foo bar


Unicode native Unterstützung


Ja Ja. Sie müssen keine Erweiterungen wie Multibyte und dergleichen mehr verwenden. Alle String-Funktionen verstehen Unicode sehr gut.

Unterstützung für Array-Dereferenzierung


Diese Funktion ist der Grundstein für viele PHP-Entwickler. Wie oft müssen wir den Nullindex einer Methode abrufen, die ein Array zurückgibt? Wie wütend ist es, dass diese scheinbar einfache Operation in zwei Zeilen geschrieben und sogar eine Variable erstellt werden muss? Jetzt musst du nicht mehr leiden:

function foo() {
  return array(1, 2, 3);
}
echo foo()[0]; // 1


Kurze Syntax für Arrays


In PHP 5.4 ist jetzt ein kurzer Array-Eintrag ohne das Schlüsselwort array verfügbar.

// Раньше приходилось писать так:
$array = array(1, 2, 3);
// Теперь можно так:
$array = [1, 2, 3];
// И даже так:
$array = ['first' => 1, 'second' => 2];


Eingebetteter Webserver


Ab sofort wird zusammen mit der PHP-Distribution ein integrierter Webserver ausgeliefert, der ausschließlich für die Entwicklung vorgesehen ist. Es kann von der Konsole aus gestartet und an einen Port gehängt werden:
php -S localhost:8000

Upload-Fortschritt


Trotz der Tatsache, dass die HTML 5-Datei-API einen Mechanismus zum Verfolgen des Vorgangs des Hochladens einer Datei auf den Server implementiert (die Größe des heruntergeladenen Teils wird vom Browser selbst angegeben), wird in PHP 5.4 eine zusätzliche Quelle zum Überwachen des Download-Status angezeigt. Es wird in der Sitzung des Benutzers im Schlüssel, z. B. upload_progress_myform , gespeichert und kann jederzeit mit Ajax abgerufen werden, um die Welt des Renderns des Fortschrittsbalkens zu erfassen .

Aufrufen einer Methode oder Klasseneigenschaft mit einem Ausdruck


Eine weitere nette Neuerung, die uns hilft, eine Codezeile zu sparen. Um eine Eigenschaft oder Methode einer Klasse aufzurufen, müssen Sie sie nicht mehr in einer separaten Variablen speichern.

class A {
  public static function foo_bar() {
    return '123';
  }
}
$foo = 'foo';
$bar = 'bar';
echo A::{$foo . '_' . $bar}(); // 123


Hinweise zum Skalartyp


PHP geht eindeutig in Richtung starkes Tippen. Bisher konnten für die automatische Typprüfung nur Arrays und Klassennamen in den Methodenargumenten angegeben werden. Nun erstreckt sich diese Möglichkeit auf einige andere Typen: int, float und boolean.

function foo(int $a, bool $b) {
  return true;
}


Verbesserte Leistung @


Der @ -Operator wird in PHP verwendet, um die Fehlerausgabe in der aktuellen Codezeile zu deaktivieren. Früher war es bei stark belasteten Anwendungen unmöglich, @ zu verwenden, da die Bremsen deutlich spürbar waren. Ich persönlich verwende es daher nirgendwo anders.

Am Ende ist es seltsam, Fehler zu dämpfen. Fehler müssen korrigiert oder abgefangen werden. Ausnahmen.

Gelöscht


Außerdem wurden register_globals, long_arrays und andere Direktiven, die auf das Löschen warteten, endgültig aus PHP herausgeschnitten.

Benutzte Literatur




Update: Fehler behoben , ich entschuldige mich, danke DoctorChaos für den Tipp.
Update 2: Hinweise zum Skalartyp in PHP 5.4 werden nicht angezeigt. Trotz dieser Aussage gibt es im SVN-Tag 5.4 keine Hinweise zum Skalartyp :( Dank an Irker und sectus .

Jetzt auch beliebt: