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

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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?
    Zuletzt geändert von Seikilos; 30.12.2011, 16: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...

    Kommentar


    • #3
      Zitat von Seikilos Beitrag anzeigen
      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!

      Kommentar

      Lädt...
      X