Funktion direkt nach dem Konstruktor aufrufen: new Object () - callFunction ()

8

Wie Sie vielleicht im Titel gesehen haben, ist mein Programmierhintergrund Java. In Java kannst du so etwas machen

%Vor%

ohne das erzeugte Objekt einer Variablen zuzuordnen, sehr nützliche und klare Codierung, wenn Sie dieses Objekt nur einmal benötigen.

Jetzt versuche ich in PHP dasselbe zu tun

%Vor%

aber hier bekomme ich einen 'Parse error: syntax error, unexpected' - & gt; ' (T_OBJECT_OPERATOR) '.

Gibt es eine Möglichkeit, dies in PHP zu tun?

    
Basti Funck 18.09.2013, 13:18
quelle

1 Antwort

15
%Vor%

funktioniert in PHP 5.4 +

BEARBEITEN

Es ist ein neues Feature , das zu PHP 5.4 hinzugefügt wurde:

  

Klassenmitgliedzugriff auf Instanziierung wurde hinzugefügt, z. %Code%.

EDIT2

Der PHP-Feature-RFC schlägt zwei Sätze von Syntax vor (mit & amp; ohne Klammern), beide von Sie sind im RFC implementiert, aber nur einer wurde ausgeliefert. Ich konnte keine Links finden, die die Entscheidung erklären.

Sehen wir uns die Beispiele für Klammerlose Syntax im RFC an:

  • (new Foo)->bar() sollte als new foo->bar() gelesen werden
  • (new foo)->bar() sollte als new $foo()->bar gelesen werden
  • (new $foo())->bar sollte als new $bar->y()->x gelesen werden

Ich denke, dass die Klammer-lose Syntax nicht geliefert wird, weil ihre vorgeschlagene Parsing-Präzedenz nicht sehr intuitiv ist (von den Augen schwer zu folgen), wie im 3. Beispiel gezeigt.

    
Kita 18.09.2013, 13:21
quelle

Tags und Links