Ankündigung

Einklappen
Keine Ankündigung bisher.

syntaxfrage

Einklappen

Neue Werbung 2019

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

  • syntaxfrage

    hallo, ich habe folgenden code:
    PHP-Code:
    <?php
    array_push
    ($array array_map("chr",range(43,45)),$array);
    var_dump($array);
    ?>
    dieser gibt aus:
    Code:
    array(3) { [0]=>  string(1) "+" [1]=>  string(1) "," [2]=>  string(1) "-" }

    ich versteh nicht ganz, warum die elemente nicht doppelt angelegt sind, theoretisch, habe ich doch einen array mit 3 elementen erzeugt, dem ich weitere 3 elemente dazugebe?

  • #2
    Ich versteh nicht ganz wofür du so ein Konstrukt brauchst? Kannst du doch ohne Probleme anders schrieben.

    Ich nehm mal an dass $array = array_map() nur gilt bis der Parameter erstellt wurde und das array_push() einfach die 3 Zeichen zu einem leeren Array $array hinzufügt.

    Kommentar


    • #3
      Re: syntaxfrage

      Zitat von notyyy
      ich versteh nicht ganz, warum die elemente nicht doppelt angelegt sind, theoretisch, habe ich doch einen array mit 3 elementen erzeugt, dem ich weitere 3 elemente dazugebe?
      ähm, die Funktion die du beschreibst ist array_merge(), wenn du zwei Arrays zusammenfügen möchtest... wenn dein Konstrukt funktionieren sollte, dann würde höchstens sowas bei rauskommen:
      Code:
      array(4) {
        [0]=>
        string(1) "+"
        [1]=>
        string(1) ","
        [2]=>
        string(1) "-"
        [3]=>
        array(3) {
          [0]=>
          string(1) "+"
          [1]=>
          string(1) ","
          [2]=>
          string(1) "-"
        }
      }
      ... nicht sehr sinnvoll ...

      Kommentar


      • #4
        Re: syntaxfrage

        Zitat von notyyy
        hallo, ich habe folgenden code:
        PHP-Code:
        <?php
        array_push
        ($array array_map("chr",range(43,45)),$array);
        var_dump($array);
        ?>
        dieser gibt aus:
        Code:
        array(3) { [0]=>  string(1) "+" [1]=>  string(1) "," [2]=>  string(1) "-" }
        array_push erwartet als ersten Paraneter eine Referenz, Du gibst aber eine Zuweisung, also einen Ausdruck an. Der Ausdruck selbst wird ausgeführt (daher überhaupt ein Ergebnis), array_push reagiert so, wie es reagieren würde, wenn Du bspw. array_push (array ('abc') , array ('cde')); angeben würdest. Höchstwahrscheinlich wird zumindest eine notice ausgegeben...

        Kommentar


        • #5
          Re: syntaxfrage

          Zitat von nikosch77
          Höchstwahrscheinlich wird zumindest eine notice ausgegeben...
          Das hat mich auch gewundert - es wird komischerweise kein Fehler angezeigt.

          Kommentar

          Lädt...
          X