HGVision
GAMES DESIGN DEVELOPMENT

PHP7: Übersicht der neuen Features

Blogbild

Im November ist es dann wohl endlich soweit. PHP bekommt seinen Major Release und zwar PHP7. Lustigerweise gibt es keinen 100% klaren Grund wieso man auf PHP6 verzichtet hat aber as kann man im PHP rfc nachlesen [1].

Nun aber zu PHP7, was sind die besonderen neuen Features die man mit PHP7 bekommt? Ich werde mich da mal auf die wichtigen Dinge beschränken welche PHP7 mitbringt. Zum einen währe da

Scalar Type Declarations

Was verbirgt sich hinter dem Begriff? Nichts anderes als das man einer Funktion mitgeben kann das ein bestimmter Typ von Parameter erwartet wird. In PHP5 wurde dieses Feature schon eingeführt aber man hat sich auf Klassen, Interface, Arrays und callable beschränkt.

Besispiel


<?php
function test(array $param){
	// do some stuff
}
?>

In PHP7 kommen nun weitere Typen dazu und zwar int, string, float und bool.


<?php
function test(int $param){
	$param++;
	return $param;
}
?>

 Man kann dazu auch noch den weak type-checking Modus oder den strict type-checking Modus nutzen.

Weak type-checking

Ohne Angabe eines Modus wird ein Script immer im weak type-checking Modus ausgeführt. So kann man an eine Funktion welche einen int erwartet auch einen numerischen String übergeben ohne das es einen Fehler gibt.


<?php
function test(int $param){
	$param++;
}
test('2');
?>

Strong type-checking

Mit der Angabe des strong type-checking Modus mittels declare(strict_types=1), muss als erste Anweisung im Script sein, kann man PHP7 mitteilen das die Prüfung von Parametern strenger sein soll. Dabei ist es nur möglich einen Parameter zu übergeben der vom erwarteten Typ ist. Die Übergabe eines numerischen String anstelle eines int ist nicht möglich.


<?php
declare(strict_types=1);
function test(int $param){
	$param++;
}
test('2');

?>

 Return Type Declarations

Mit PHP7 kann man dann auch den Rückgabewert definieren. Das was in Sprachen wie Java schon immer ging bzw. ein musst ist, kann dann auch in PHP eingesetzt werden.


<?php
function test(int $param): int{
	$param++;
return $param;
}
test(‘2’); // int(3)
?>

Space Ship Operator

Es wird einen neuen Vergleichsoperator geben, das sogenannte Space Ship expr1 <=> expr2. Dieser Operator vergleicht ob expr1 kleiner, gleich oder größer ist als expr2 und gibt je nach Ergebnis -1, 0 oder 1 zurück.


<?php
1 <=> 2; // -1
1 <=> 1; // 0
2 <=> 1; // 1
?>

Prefomance und Geschwindigkeit

Angaben von Zend zufolge sollen Applikationen mit PHP7 ohne Änderungen am Quelltext. Der Perfomancezuwachs soll dabei zwischen 25% und 70% liegen gemessen an realen Applikationen.

Die Geschwindigkeit soll sich dabei verdoppeln da weniger CPU Operationen benötigt werden. So soll die Wordpress Homepage normal mit 9.2 Milliarden CPU Operationen brauchen mit PHP7 aber nur noch 2.6 Milliarden CPU Operationen.[2]

Was die Perfomance angeht darf man also gespannt sein. Ich bin sehr gespannt auf die neuste PHP Version und freue mich schon auf die neuen Features.