DarkScar: Array-Element abhängig von anderem Element im selben Array

Hallo

Ich habe ein kleines Problem, bei dem ich nicht mehr weiter komme (das folgende Beispiel ist eine vereinfachte Darstellung davon). Und zwar habe ich eine Array mit mehreren Elementen. Eines davon hat als Wert einen bestimmten String zugewiesen (wert1 => "brot"). Der Wert eines anderes Elements soll den Wert des ersten Elements enthalten sowieso einen Zusatz (wert2 = wert1."kruemel"). Sinn des ganzen ist es, dass ich den wert1 nur einmal eingeben muss und dadurch Redundanz vermeiden will.

Funktionierendes Beispiel, das aber eine redundate Eingabe des Wertes "brot" benötigt:

$var = array("wert1" => "brot", "wert2" => "brot"."kruemel");
echo $var["wert2"];

Ausgabe: brotkruemel

Leider nicht funktionierendes Beispiel, das aber aufzeigt, wie ich mir das ganze vorstelle:

$var = array("wert1" => "brot", "wert2" => $var["wert1"]."kruemel");
echo $var["wert2"];

Ausgabe: kruemel
Gewünschte Ausgabe: brotkruemel

Der Grund, warum das zweite Beispiel nicht funktioniert, liegt wahrscheinlich darin, dass ich versuche aus dem Array einen Wert auszulesen, bevor ich es fertig definiert habe. Aber das ist nur eine Vermutung von mir.

Hat wer eine Idee, wie ich dieses Problem lösen oder umgehen kann ?
Danke schon mal im voraus für Tipps.

  1. Hi!

    wie wäre es damit?

      
      
    $var          = array();  
    $var["wert1"] = "brot";  
    $var["wert2"] = $var["wert1"]."kruemel";  
      
    
    

    Deine eigentliche Intention erschließt sich mir allerdings nicht so ganz;)

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hi!

      wie wäre es damit?

      $var          = array();
      $var["wert1"] = "brot";
      $var["wert2"] = $var["wert1"]."kruemel";

      
      >   
      > Deine eigentliche Intention erschließt sich mir allerdings nicht so ganz;)  
      >   
      > off:PP  
        
      Klar, das funktioniert ;-) . Und möglicherweise werde ich das auch als Notlösung so machen. Meine Intention ist die Übersichtlichkeit aufgrund der Grösse des Arrays. Es wäre einfacher zu handhaben, wenn ich die Zuweisung in einem Zug machen könnte anstatt sie auf Zwischenschritte aufzuteilen.
      
  2. echo $begrüßung;

    Leider nicht funktionierendes Beispiel, das aber aufzeigt, wie ich mir das ganze vorstelle:

    $var = array("wert1" => "brot", "wert2" => $var["wert1"]."kruemel");

    Das kann in PHP und einer Reihe andere Programmiersprachen so nicht funktionieren. Du hast einen Zuweisungsoperator auf dessen rechter Seite einen Ausdruck (in dem Fall array(...)) steht, der stets zuerst ausgewertet werden muss, bevor er der links stehenden Variable (hier $var) zugewiesen wird. Erst dann existiert die Variable und ihr Inhalt.

    Wenn du das error_reporting von PHP auf E_ALL stellst, wirst du bei deinem Versuch Lesezugriffe auf das nicht vorhandene $var angezählt bekommen.

    Der Grund, warum das zweite Beispiel nicht funktioniert, liegt wahrscheinlich darin, dass ich versuche aus dem Array einen Wert auszulesen, bevor ich es fertig definiert habe.

    Das Array existiert zu dem Zeitpunkt nur in einem Ausdruckauswertungszwischenspeicher. Da es (noch) keiner Variable zugewiesen ist, besteht (noch) keine Möglichkeit, darauf zuzugreifen.

    echo "$verabschiedung $name";