ich bin nicht sicher, ob das was ich vorhabe, möglich ist. Ich habe schon nach ähnlichen Foreneinträgen gesucht, aber nicht wirklich etwas gefunden zu haben.
Ich habe eine Funktion foobar(), die als Ergebnis ein Array zurückliefert.
Nun möchte ich, dass wenn die Funktion foobar() ohne Angabe eines Keys bspw. “1337” zurückgibt. Ich denke, dass das nicht möglich ist, würde auch dem widersprechen was ich über Arrays weiß aber evtl. gibt es ja doch eine Methode, mit der das tatsächlich geht (bspw. Aliasing (foobar() = foobar()[‘key’]).
es geht schon in die richtige Richtung, allerdings will ich den Key nicht als Parameter übergeben (die Funktion hat schon Parameter und ich will, dass das Array per [‘key’] angesprochen wird).
Bspw. soll bei
foobar()[‘foo’] = "bar"
usw. rauskommen und bei foobar() = 1337 oder sonst irgendwas rauskommen, letzteres funktioniert einwandfrei.
Da du in PHP ja nicht überladen im klassischen Sinn kannst, wird das schwer. Mir wäre keine Syntax bekannt, die das erlaubt. Dir wird nichts anderes übrig bleiben, als das über ein eigenes einfaches Objekt oder eine eigene Funktion zu lösen. Allerdings: > allerdings will ich den Key nicht als Parameter übergeben (die Funktion hat schon Parameter
Ich sehe hier den Widerspruch/das Hindernis nicht. Du kannst ja mehrere Parameter übergeben. Oder geht es dir nur um die “Schönheit”?
foobar() gibt ein Array zurück. Der key access geschieht nachdem die Funktion das Array zurückgegeben hat, und ich sehe keine Möglichkeit von innerhalb der Funktion zu erkennen, ob der key access geschieht oder nicht.
Du musst Parameter an die Funktion übergeben, um das Verhalten der Funktion zu beeinflussen. Was du suchst ist womöglich ein “default argument”:
[quote=“Balmung, post:5, topic:32889”]Dein vorhaben ist so nicht möglich. […]
[/quote]
Hab ich mir schon fast gedacht, gut das auch bestätigt zu bekommen.
Habe auch schon daran gedacht, wollte diesen Parameter aber in der “typischen” Array-Syntax ($arr[‘key’]) übergeben statt als Funktionsparameter, einfach der “Schönheit” halber.
[quote=“Mgier, post:4, topic:32889”]Ich sehe hier den Widerspruch/das Hindernis nicht. Du kannst ja mehrere Parameter übergeben. Oder geht es dir nur um die “Schönheit”?
[/quote]
Jap, wie erwähnt einfach nur der “Schönheit” halber.
Trotzdem vielen Dank euch beiden und Entschuldigung für die späte Antwort, hatte heute viel zu tun (Studiums-Projekte). ^^