Warum ist eigentlich array(1,2)[0] nicht möglich?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Warum ist eigentlich array(1,2)[0] nicht möglich?

    Hallo,

    ich habe mich schon immer gefragt, wieso folgender Code zu einer Fehlermeldung führt:
    PHP Code:
    $a = array(1,2)[0]
    // oder
    array_keys($choices))[0
    Nach Array Accessor und dem Problem zu suchen hat bis jetzt nicht sonderlich gefruchtet.

    beide Funktionen liefern doch ein Array objekt zurück, warum kann ich auf diesem Objekt erst nach einer Zuweisung den operator[] benutzen?
    Last edited by Seikilos; 30-12-2011, 15:35.
    SQL Injection kitteh is...

  • #2
    Habs.
    Array dereferencing
    https://wiki.php.net/rfc/functionarraydereferencing
    Ab 5.4
    Wurde schon seit Ewigkeiten angefragt, aber nun wahrscheinlich in 5.4 implementiert
    SQL Injection kitteh is...

    Comment


    • #3
      Originally posted by Seikilos View Post
      Habs.
      Array dereferencing
      https://wiki.php.net/rfc/functionarraydereferencing
      Ab 5.4
      Wurde schon seit Ewigkeiten angefragt, aber nun wahrscheinlich in 5.4 implementiert
      Ja, und bis dahin tuts auch eine der bisher funktionierenden Zugriffsmöglichkeiten:
      PHP Code:
      list($a, ) = array (...); 
      oder ein
      PHP Code:
      $a reset(array (...)); 
      oder ein
      PHP Code:
      $a current(array_slice(array (...), 01)); 
      Die Möglichkeit Objekt-Konstruktoren zu "dereferenzieren" finde ich da schon spannender, wenn auch die zusätzlichen Klammern drumherum etwas seltsam ausschauen:

      PHP Code:
      $something = (new MyClass())->getSomething(); 
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Comment

      Working...
      X