Soeben wurde PHP 5.4.0 released! Nach 8 Release Candidates ist nun die finale Version erschienen und kann auf php.net heruntergeladen werden. Ich habe 2 meiner größeren Applikationen bereits mit der neuen Version getestet (mit dem RC8, der gleich der finalen Version ist). Sobald DotDeb die neue Version released wird der Server upgedated. So, hier eine [...]
Soeben wurde PHP 5.4.0 released! Nach 8 Release Candidates ist nun die finale Version erschienen und kann auf php.net heruntergeladen werden. Ich habe 2 meiner größeren Applikationen bereits mit der neuen Version getestet (mit dem RC8, der gleich der finalen Version ist). Sobald DotDeb die neue Version released wird der Server upgedated.
So, hier eine Übersicht der wichtigsten Änderungen:
<?
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
Nun sind Methodenaufrufe direkt nach dem Constructor möglich, also ein Fluent Interface:
echo (new Auto())->getName();
Neuer Typehint “callable“, der Parameter muss also “irgendwie aufrufbar” sein, sprich ein Funktionsname, ein Array mit Klassennamen und statischem Methodennamen, oder ein Array mit Objekt und Methodennamen. Details siehe is_callable()
<?
function doSomething(callable $cb) {
$cb();
}
Die Short Array Syntaxkommt! Ob ich sie mag weiß ich noch nicht so ganz, man spart sich einfach 5 Zeichen. Aber immerhin hat man dann in Javascript bzw. JSON die gleiche Syntax.
Mehr Flexibilität bei variablen Methodenaufrufen: Class::{expr}()
<?
class ClassA
{
public function doSomething() {
echo "something\n";
}
}
$method = 'doSomething';
$classA = new ClassA();
$classA->doSomething();
$classA->$method();
$classA->{'doSomething'}();
ClassA::doSomething();
ClassA::$method();
ClassA::{'doSomething'}();
$GLOBALS ist nun eine Just-In-Time (JIT) Variable. Andere würden es “lazy initialisation” nennen. Sie wird also erst initialisiert wenn sie das erste Mal benutzt wird, man gewinnt also eventuell etwas Performance wenn man es nicht nutzt.
Die Performance des Silence-Operators wurde etwas verbessert:
codekicker.de braucht deine Hilfe: Like uns und klicke auf den +1-Button!
PHP Gangsta - Der PHP Blog
Ich beschäftige mich in meinem Blog hauptsächlich mit PHP und dem Zend Framework. Ich stelle Code vor, reiße neue Themen an und schreibe nebenbei aber auch über dies und das aus der Entwicklerwelt und interessanten IT-News.