Abo
  1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Skriptsprachen: PHP 5.5…

Strings und Arrays dereferenzieren?

  1. Thema

Neues Thema Ansicht wechseln


  1. Strings und Arrays dereferenzieren?

    Autor: Schattenwerk 19.11.12 - 11:38

    Persönlich freue ich mich sehr über die Features. Vor allem finally fehlt mir unglaublich häufig.

    Jedoch stelle ich mir die Umstellung mit der Dereferenzierung schon etwas anstrengend vor. Denke, dass dies ein Punkt sein wird, wo viele Leute aufschreien werden bzgl. Kompatibilität und Co.

  2. Re: Strings und Arrays dereferenzieren?

    Autor: michiw 19.11.12 - 12:26

    Also spontan Fällt mir kein Fall ein in dem dieses Sprachfeature[1] irgendwelche Probleme mit der Abwärtskompatibilität verursachen könnte.


    [1] https://wiki.php.net/rfc/constdereference

  3. Re: Strings und Arrays dereferenzieren?

    Autor: Vanger 19.11.12 - 13:09

    Ich bin mir gerade nicht ganz sicher in welchen Situationen man dieses Feature praktisch sinnvoll anwenden kann... Warum sollte ich noch bei Erstellung eines Arrays auf ein einzelnes Element dieses Arrays zugreifen wollen? Wozu definiere ich dann überhaupt ein Array und verwende nicht einfach direkt das gesuchte Element?

  4. Re: Strings und Arrays dereferenzieren?

    Autor: Polecat42 19.11.12 - 13:12

    Vanger schrieb:
    --------------------------------------------------------------------------------
    > Ich bin mir gerade nicht ganz sicher in welchen Situationen man dieses
    > Feature praktisch sinnvoll anwenden kann... Warum sollte ich noch bei
    > Erstellung eines Arrays auf ein einzelnes Element dieses Arrays zugreifen
    > wollen? Wozu definiere ich dann überhaupt ein Array und verwende nicht
    > einfach direkt das gesuchte Element?

    spielst Du auf das Beispiel im Link an? Das ist, wie gesagt, nur ein Beispiel, "in echt" würde man Funktionsaufrufe verwenden:

    <?php
    $value = $this->invokeSomethingThatReturnsAnArray()['thing'];
    ?>
    zum Beispiel. Ich vermisse das sehr.

    Ein anderes Beispiel wäre, wenn man Arrays als Hilfe verwendet, zB

    <?php
    $string = 'a,csv,list';
    $firstItem = explode(',', $string)[0];
    ?>

    (ginge freilich auch besser mit strtok bspw., "but you get the idea" :)



    1 mal bearbeitet, zuletzt am 19.11.12 13:14 durch Polecat42.

  5. Re: Strings und Arrays dereferenzieren?

    Autor: Polecat42 19.11.12 - 13:19

    ok, ich Idiot... die wollen das tatsächlich für Konstruktoren verwenden... ich wundere mich gerade, weil das von mir beschriebene ja schon in 5.4 geht ;)

    OK, Kommando zurück: ich verstehe vollständig Deinen Einwand und frage mich, wozu das gut sein soll...

  6. Re: Strings und Arrays dereferenzieren?

    Autor: Vanger 19.11.12 - 13:32

    Der einzige Grund warum die Beispiele im Link nicht funktionieren ist, dass array() keine Funktion sondern ein Sprachkonstrukt ist. Gut, positiv daran wäre zumindest mal, dass array() sich etwas mehr wie eine Funktion verhalten würde. Da stelle ich mir aber die Frage warum man es nicht einfach direkt als Funktion implementiert. Sprachkonstrukte sind in den meisten Fällen verzichtbar und nur eine Fehlerquelle. Das hier funktioniert nämlich beispielsweise nicht:

    <?php
    $a = 'array';
    $a('foo', 'bar');
    ?>

    Ergebnis:
    > Call to undefined function array()

    Das folgende funktioniert hingegen:

    <?php
    function foo($a, $b) { echo $a.' '.$b.'!'; }
    $f = 'foo';
    $f('Hello', 'World');
    ?>

    Ergebnis:
    > Hello World!

  7. Re: Strings und Arrays dereferenzieren?

    Autor: crash 19.11.12 - 14:18

    Wenn du für CSV-String/-Dateien noch mal explode()/implode() benutzt, komm ich mitm Knüppel ;)

    http://php.net/str_getcsv & http://php.net/fgetcsv

  8. Re: Strings und Arrays dereferenzieren?

    Autor: Polecat42 19.11.12 - 14:46

    war doch nur ein Beispiel ;-) Ich sage: wenn nochmal jemand überhaupt CSV-Dateien/-Strings benutzt, komm *ich* middm Knüppel! :)

  9. Re: Strings und Arrays dereferenzieren?

    Autor: crash 19.11.12 - 14:53

    Ach so als Export von Datenbanken ja sehr geeignet. Knüppel lieber die Leute die für ihre Schnittstellen CSV nehmen statt JSON/XML etc. ;)

    $firstItem = explode(',', $string)[0]; geht im übrigen schon immer:

    list($firstItem, ) = explode(',', $string);

    Neu ist halt nur, dass das in foreach() funktioniert.

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Aktion Mensch e.V., Bonn
  2. MüKo Maschinenbau GmbH, Weinstadt bei Stuttgart / Buford (USA)
  3. über Mentis International Human Resources GmbH, Region West-Thüringen
  4. Bosch Gruppe, Reutlingen

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Spiele-Angebote
  1. 4,99€
  2. (-67%) 9,99€
  3. 20,49€
  4. 45,95€


Haben wir etwas übersehen?

E-Mail an news@golem.de


IT-Jobporträt Spieleprogrammierer: Ich habe mehr Code gelöscht als geschrieben
IT-Jobporträt Spieleprogrammierer
"Ich habe mehr Code gelöscht als geschrieben"

Wenn man im Game durch die weite Steppe reitet, auf Renaissance-Hausdächern kämpft oder stundenlang Rätsel löst, fragt man sich manchmal, wer das alles in Code geschrieben hat. Ein Spieleprogrammierer von Ubisoft sagt: Wer in dem Traumjob arbeiten will, braucht vor allem Geduld.
Von Maja Hoock

  1. Recruiting Wenn die KI passende Mitarbeiter findet
  2. Softwareentwicklung Agiles Arbeiten - ein Fallbeispiel
  3. IT-Jobs Ein Jahr als Freelancer

Mac Mini mit eGPU im Test: Externe Grafik macht den Mini zum Pro
Mac Mini mit eGPU im Test
Externe Grafik macht den Mini zum Pro

Der Mac Mini mit Hexacore-CPU eignet sich zwar gut für Xcode. Wer eine GPU-Beschleunigung braucht, muss aber zum iMac (Pro) greifen - oder eine externe Grafikkarte anschließen. Per eGPU ausgerüstet wird der Mac Mini viel schneller und auch preislich kann sich das lohnen.
Ein Test von Marc Sauter

  1. Apple Mac Mini (Late 2018) im Test Tolles teures Teil - aber für wen?
  2. Apple Mac Mini wird grau und schnell
  3. Neue Produkte Apple will Mac Mini und Macbook Air neu auflegen

Radeon VII im Test: Die Grafikkarte für Videospeicher-Liebhaber
Radeon VII im Test
Die Grafikkarte für Videospeicher-Liebhaber

Höherer Preis, ähnliche Performance und doppelt so viel Videospeicher wie die Geforce RTX 2080: AMDs Radeon VII ist eine primär technisch spannende Grafikkarte. Bei Energie-Effizienz und Lautheit bleibt sie chancenlos, die 16 GByte Videospeicher sind eher ein Nischen-Bonus.
Ein Test von Marc Sauter und Sebastian Grüner

  1. Grafikkarte UEFI-Firmware lässt Radeon VII schneller booten
  2. AMD Radeon VII tritt mit PCIe Gen3 und geringer DP-Rate an
  3. Radeon Instinct MI60 AMD hat erste Grafikkarte mit 7 nm und PCIe 4.0

  1. Galaxy Fold: Samsungs faltbares Smartphone kostet 2.000 US-Dollar
    Galaxy Fold
    Samsungs faltbares Smartphone kostet 2.000 US-Dollar

    Samsung hat sein erstes Smartphone mit faltbarem Display vorgestellt: Das Galaxy Fold bietet einen Bildschirm auf der Außenseite und ein großes Display im Inneren, das ausgeklappt wird. Die Technik sieht anders als bei Konkurrenten fertig aus, hat aber seinen Preis.

  2. Galaxy S10 im Hands on: Samsung bringt vier neue Galaxy-S10-Modelle
    Galaxy S10 im Hands on
    Samsung bringt vier neue Galaxy-S10-Modelle

    Mit der neuen Galaxy-S10-Reihe will Samsung wieder mehr Innovationen liefern und nicht nur mit der Konkurrenz gleichziehen. Die neuen Geräte kommen mit Multikamera-Systemen, Display-Fingerabdrucksensoren und interessanter Ladetechnik - sogar ein 5G-Modell hat der Anbieter im Portfolio.

  3. Galaxy Buds: Samsungs neue Hörstöpsel sollen 6 Stunden durchhalten
    Galaxy Buds
    Samsungs neue Hörstöpsel sollen 6 Stunden durchhalten

    Mit den Galaxy Buds hat Samsung neue kabellose Hörstöpsel vorgestellt. Für True Wireless In-Ears haben sie eine recht lange Akkulaufzeit. Das Ladeetui lässt sich kabellos laden - beispielsweise auf dem neuen Galaxy S10.


  1. 20:46

  2. 20:30

  3. 20:30

  4. 20:30

  5. 18:15

  6. 17:50

  7. 17:33

  8. 17:15