Kategorie PHP

PHP 7 Neuerungen

In diesem Artikel stelle ich diverse PHP 7 Neuerungen bzw. Änderungen vor. Es hat sich einiges getan in der neuen PHP Version und ein paar interessante Fälle möchte ich hier vorstellen.

Alte Constructor Deklaration läuft aus

In PHP 4 musste der Konstruktor einer Klasse noch denselben Namen wie die Klasse selbst tragen. Ab PHP 5 kam dann die Deklaration mit _construct() ins Spiel. Bis zur PHP Version 5.6 war die alte Deklaration auch weiterhin noch zulässig. Mit PHP 7 wird diese Deklaration als deprecated angesehen und in einer späteren Version soll sie dann vollends verschwinden.

Zur Veranschaulichung hier ein Beispiel:


class Person
{
  public function __construct()
  {
    echo 'Ich bin der Konstruktor.';
  }

  public function person()
  {
    echo 'Ich bin eine normale Methode.';
  }
}

$person = new Person();
$person->person();

Beim Ausführen dieses Beispielcodes sieht man deutlich, dass die __construct() Methode als Konstruktor getriggert wird und die Funktion person() eine normale Klassenmethode ist.

Konstante Arrays

Seit PHP 5.6 lassen sich konstante Arrays mit dem reservierten Bezeichner const initialisieren.


const LANG = [ 'EN', 'FR', 'DE' ];

Mit PHP 7 kam als neue Möglichkeit hinzu, ein konstantes Array mit der Funktion define() zu initialisieren.


define(LANG, [ 'EN', 'FR', 'DE' ]);

Mehrere „default“ in einer Switch Anweisung

Vor PHP 7 waren mehrere „default“ in einer Switch Anweisung möglich, wie in dem folgenden Beispiel:


switch (true)
{
  default:
    echo 'Ich bin der erste default case.";
  default:
    echo 'Ich bin der zweite default case.";
}

Vor PHP 7 war dieser Code erlaubt. In PHP 7 würde er zu einem „fatal error“ führen:


Fatal error: Switch statements may only contain one default clause in ...

Options Array für die session_start Funktion

For PHP 7 wurde eine Session mit der Funktion session_start() ohne irgendwelche Parameter gestartet. Die Einstellungen für Sessions wurden in der php.ini hinterlegt.
Seit PHP 7 kann man ein Array mit den Optionen für eine Session übergeben.


session_start(
  ['cookie_lifetime' => 3600, 'read_and_close' => true]
);

Über weitere Neuerungen und Änderungen werde ich berichten, sobald sie mir in der Praxis unterkommen.

Ähnliche Artikel:

Fragen oder Feedback zu diesem Artikel

Deine E-Mail-Adresse wird nicht veröffentlicht.