Henry: Warum array_merge besser geignet ist arrays zu verknüpfen als der + Operator

Hallo,

ich hatte gerade ein seltsames Problem und wollte hier schon anfragen, bin aber selbst drauf gekommen. Ich schreibs nur trotzdem mal auf, falls jemand das gleiche Problem mal hat.

Wenn man Arrays zu einem Array verbinden will, gibt es mehrere Möglichkeiten, die simpelste ist natürlich der + Operator. Jetzt bekam ich aber einen seltsamen Abbruch des Scripts mit nicht ganz verständlichen Fehlermeldungen:

Fatal error: Uncaught Error: Unsupported operand types…
#1 {main} thrown in…    

Dachte zuerst was soll denn an dem Operator (kam nicht drauf dass operand was anderes ist) falsch sein, bis ich dann einfach mal array_merge genommen habe und die weitaus verständlichere Fehlermeldung mein Problem zeigte:

Warning:
array_merge():Expected parameter 2 to be an array, null given…

Es lag also daran, dass ein Array noch nicht existierte. Von daher ist array_merge() vielleicht + auch bei kleinen Sachen vorzuziehen.

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
  1. Tach!

    Es lag also daran, dass ein Array noch nicht existierte. Von daher ist array_merge() vielleicht + auch bei kleinen Sachen vorzuziehen.

    Es ist besser, wenn man Variablen vor dem Gebrauch initialisiert. Dann muss man sich nicht auf den PHP-Mechanismus verlassen, dass der das richtige macht. array_merge() und der +-Operator arbeiten jedenfalls beim Behandeln der Keys nicht gleich und sind nicht deshalb in jedem Fall austauschbar.

    dedlfix.

  2. Hello,

    Operanden sind die zu behandelnden Objekte.
    Operatoren sind die Behandlungsanweisungen.

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
  3. Moin,

    Wenn man Arrays zu einem Array verbinden will, gibt es mehrere Möglichkeiten, die simpelste ist natürlich der + Operator.

    danke für diesen Beitrag! Abgesehen davon, dass mehrere auf den ersten Blick austauschbare Wege nicht immer wirklich gleichwertig sind, war mir bisher nicht bekannt, dass man mit dem Plus-Operator auch Arrays verbinden kann.

    Es lag also daran, dass ein Array noch nicht existierte. Von daher ist array_merge() vielleicht + auch bei kleinen Sachen vorzuziehen.

    Meist ist mir ein Operator lieber als eine Funktion, die das gleiche leistet.
    In diesem Fall würde ich dir aber recht geben.

    Ciao,
     Martin

    --
    Nur den frühen Vogel frisst der Wurm.
    1. Tach!

      Es lag also daran, dass ein Array noch nicht existierte. Von daher ist array_merge() vielleicht + auch bei kleinen Sachen vorzuziehen.

      Meist ist mir ein Operator lieber als eine Funktion, die das gleiche leistet.
      In diesem Fall würde ich dir aber recht geben.

      Ich nicht. Es kommt darauf an, wie man mit den Keys umgehen möchte. Da unterscheiden sich die beiden Vorgehensweisen. Und man muss beachten, ob die Keys numerisch sind oder nicht. array_merge() überschreibt bei gleichen Keys, bei + bleibt das Element aus dem linken Array erhalten. Numerische Keys jedoch werden von array_merge() neu vergeben, und alle Elemente damit hinten angehängt, von + aber nicht.

      dedlfix.