Matthias: Variablen in ein Array schreiben

Hallo zusammen,

ich habe ein paar Schwierigkeiten Variablen in ein anderen Array zu schreiben.

Ich habe folgendes Konstrukt:

Variable $irgendwas['last_name']
Diese möchte ich in den Array $myArray schreiben.
Was ist an diesem Code falsch?

Immerhin kann ich den String "YYY" reinschreiben.

$myArray= array
 (
 'firstName'  => 'YYY',
 'lastName'  => $irgendwas['last_name']
 );

Vielen Dank im Voraus.
Gruss

Matze

  1. $irgendwas['last_name'] = "XXX";

    $myArray= array
    (
    'firstName'  => 'YYY',
    'lastName'  => $irgendwas['last_name']
    );

    print_r($myArray);

    liefert vollkommen korrekt:

    Array ( [firstName] => YYY [lastName] => XXX )

    Sicher, das alles sauber initialisiert wurde ?

    MfG

    1. Hi,

      Sicher, das alles sauber initialisiert wurde ?

      Ich glaube die Ursache gefunden zu haben, aber ich habe leider keine Lösung dazu;-(

      folgender Code:

      $test = "XYZ";
      function get_form()
      {
       $sql = "SELECT * FROM t_persons WHERE ( t_persons.person_ID = '".mysql_real_escape_string($id)."')";
       $resultSet = mysql_query($sql) OR die(mysql_error());
       $person = mysql_fetch_array($resultSet);

      $defaults = array
       (
       'firstName'  => $person['first_name'],
       'lastName'  => $person['last_name']
       );
         echo $test // das funktioniert nicht, obwohl ausserhalb der funktion definiert
        .
        .
        .
      }

      Wenn ich nun die Variable $sql ausgebe erscheint lediglich "SELECT * FROM t_persons WHERE ( t_persons.person_ID = '"", also der Teil .mysql_real_escape_string($id)."')"; fehlt völlig.

      Ich habe auch festgestellt, dass ich auf Variablen, die ich außerhalb der Funktion definiere nicht zugreifen kann.

      Wenn ich also $test="XYZ" ausserhalb der Funktion definiere und ich versuche den Inhalt dieser Variablen auszugeben kommt gar nichts.

      Was mache ich falsch?

      Das ist bestimmt ein Anfängerfehler (was ich eigentlich auch bin)

      Gruss
      Matze

      1. $test ist innerhalb des Scriptes eine globale, jedoch keine Superglobale Variable.

        Also muss in die funktion

        function get_form() {
        global $test;

        ....
        }

        geschrieben werden, um darauf zugreifen zu können.

        Auch $id ist nicht definiert, also liefert die funktion nichts zurück und damit steht nichts im Query.

        $id muss also irgendwie in die Funktion hinein, entweder als Paramater oder auch über global.

        Schreib mal nach dem ersten <?php -Tag

        error_reporting(E_ALL);

        damit sollte bei jeder nicht definierten Variable eine Warnung ausgegeben werden.

        MfG

        1. $test ist innerhalb des Scriptes eine globale, jedoch keine Superglobale Variable.

          Hatte ich soeben auch rausgefunden. Danke.
          Welche Auswirkungen hat es wenn ich eine Variable globalisiere?

          Die Variable ist doch nur in dieser einen PHP datei global, oder?
          Wenn die PHP Datei durch ist, gibt es sie nicht mehr. Ist das richtig?

          Gruss
          Matthias

          1. $test ist innerhalb des Scriptes eine globale, jedoch keine Superglobale Variable.

            Hatte ich soeben auch rausgefunden. Danke.
            Welche Auswirkungen hat es wenn ich eine Variable globalisiere?

            Wirklich globale Variablen stehen ohne gesonderte Initialisierung überall in einem Skript zur Verfügung (also in Funktionen / Klassen).

            Die Variable ist doch nur in dieser einen PHP datei global, oder?
            Wenn die PHP Datei durch ist, gibt es sie nicht mehr. Ist das richtig?

            Das ist richtig.

            MfG

            1. Alles Klar,

              vielen Dank
              Gruss

              Matthias