Das Örtchen RSS-Feed
Suchen
Blog
Ähnliche Beiträge
Neueste Kommentare
Neueste Einträge
Populäre Einträge
Tagwolke
addon auswertung barcamp blog bug cms datenkrake drupal drupal 7 film frickeln friday gewinnspiel git hardware how-to individualisierung jquery meinung mmo modul nas php php5.3 problem se7en seo sicherheit sicherung software spiel teil theme trailer unterhaltung update windows windows 7 wordpress wow
Monatsarchiv

PHP: Traits und Array-Dereferencing kommen mit PHP 5.4

Zufällig bin ich heute in einem meiner bevorzugten Newsticker über ein Video zum Thema PHP 5.4 gestolpert. Interviewt wurde Johannes Schlüter auf der IPC Spring 2011. Herbei haben mich zwei Neuerungen davon überzeugt, nach dem Release schnellstmöglich produktiv mit PHP 5.4 arbeiten zu wollen, nämlich Traits und das Array-Dereferencing.

Interview(s)

Doch lassen wir Johannes zunächst selbst zu Wort kommen:

Ein weiteres Interview mit schlechterer Audio-Qualität:

Array-Dereferencing

Dieses Feature lässt sich aus meiner Sicht am besten mit einem Beispiel von Web-Union.de erklären:

  function getAnyArray()
{
    return array("Apfel", "Birne", "Banane");
}
 
echo getAnyArray()[2]; // Ausgabe: Banane  

Weiterführende Informationen findet man im Blog-Artikel zur Alpha 1 von Johannes.

Traits

Bisher war es in PHP nicht möglich Methoden aus mehreren Klassen zu übernehmen, da man nur von einer Eltern-Klasse erben kann. Dies wird zukünftig durch Traits behoben.

  trait Helferlein
{
    public function formatiereZeitpunkt() {
        return strftime('d.m.Y H:i:s', strtotime($this->datum));
    }
}

class A
{
    use Helferlein;

    public $datum = '2011-11-11 11:11:11';
    // ...
}

class B extends OtherClass
{
    use Helferlein;

    public $datum = '2009-09-09 09:09:09';
    // ...
}

// Die Methode formatiereZeitpunkt ist nun in beiden Klassen verfügbar
$a = new A();
echo $a->formatiereZeitpunkt();
$b = new B();
echo $b->formatiereZeitpunkt();  

Das Beispiel macht zwei Sachen deutlich:

  1. Die Methode kann man in vielen Daten-Klassen brauchen, jedoch nicht in allen. Sie macht also in einer gemeinsamen Eltern-Klasse für alle Daten-Klassen keinen Sinn.
  2. Ein Zugriff auf das aktuelle Objekt mit $this wird möglich sein.

Weitere Beispiele vor allem bei Methoden-Kollisionen von zwei Traits finden sich in Englisch bei Simas Toleikis. In einem weiteren englischen Beitrag hat sich Giorgio Sironi Gedanken darüber gemacht, wie nützlich die neuen Features sind und wie hoch im Vergleich dazu die Wahrscheinlichkeit eines Missbrauchs ist.

[via PHPmagazin]

Hallo! Bist du neu hier? Dann abonniere doch den RSS-Feed dieses nicht mehr ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben. Alternativ besteht auch die Möglichkeit, sich von FeedBurner per E-Mail über meine Ausscheidungen benachrichtigen zu lassen.

Kommentar hinzufügen

(If you're a human, don't change the following field)
Your first name.
Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als nofollow markiert.
Hinweis

Kommentare beleben den Blog! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen (oder zu Blogs mit Grauzonen-Themen) und/oder Keywords als Namen verwenden und/oder Links im Kommentarbereich enthalten, sind nicht erwünscht!

Möchtest Du mir einen Blog-Artikel schmackhaft machen, dann schreib die URL ohne Link-Tag und ohne http(s):// in den Kommentarbereich und ich werde diesen bei Gefallen verlinken.

Die ersten vier Kommentare (mit den gleichen Daten bei Name, E-Mail und Blog) landen vor der Veröffentlichung in meiner Freigabe-Warteschlange und ich behalte mir das Recht vor, Kommentare entsprechend dieser Regeln anzupassen oder zu löschen!

t3n Magazin - Jetzt im Abo bestellen