Problem mit Variablenbelegung

time-master

Erfahrenes Mitglied
Hallo.
Ich schreibe grade eine Tabellen-Klasse und habe ein Problem beim Überschreiben von Klassenvariablen.

PHP:
    $tag     = "align";
    $value = "center":
    
    
    $tblTags = $this->getTBLTagsAsArray ();
    
    foreach ($tblTags as $tblTag => $tblValue)
    {
      if ($tblTag == $tag)
      {
    /*
    Hier möchte ich z.B. $this->_TBLalign mit $value überschreiben. 
    */
      }
    }
      
    function getTBLTagsAsArray ()
    {
      $tblTags = array (
   "align" => $this->_TBLalign,
  "border" => $this->_TBLborder,
  "bgcolor"   => $this->_TBLbgcolor	,
  "cellpadding" => $this->_TBLcellpadding,
  "cellspacing" => $this->_TBLcellspacing,
  "rules" => $this->_TBLrules,
  "summary" => $this->_TBLsummary,
  "width"  => $this->_TBLwidth);
  
   return $tblTags;
    }

Kann (Muss) ich hier mit Zeigern arbeiten? Oder weiß einer eine andere Lösung?
 
Dein Code ist recht eigenartig. Wie soll denn die Schleife innerhalb der Klasse funtionieren, wenn diese nicht in einer Methode (function) steckt? zumal aus deinem Code nicht eimal ersichtlich ist, dass es sich um eine Klasse handelt. Sollte die Schleife letztendlich in einer Methode ihren Frieden finden, dann sollte das Überschreiben der Klassenvariable (sofern sie denn eine ist) über
PHP:
$this->_TBLalign = $value;
problemlos möglich sein.

Zudem die Frage: Warum hast du mehere Klassenvariablen, die du wiederum in ein Array steckst, um dann das Array auszulesen, um dann wieder die Klassenvariable zu überschreiben? Kannst du nicht gleich das Array als Klassenvariable verwenden?

Sven
 
Sven Petruschke hat gesagt.:
Dein Code ist recht eigenartig. Wie soll denn die Schleife innerhalb der Klasse funtionieren, wenn diese nicht in einer Methode (function) steckt? zumal aus deinem Code nicht eimal ersichtlich ist, dass es sich um eine Klasse handelt.

Das ist ja auch nur ein Teil meines Codes oder sollte ich etwa das Forum mit sinnlosem Code vollspamen?

Sven Petruschke hat gesagt.:
Sollte die Schleife letztendlich in einer Methode ihren Frieden finden, dann sollte das Überschreiben der Klassenvariable (sofern sie denn eine ist) über
PHP:
$this->_TBLalign = $value;
problemlos möglich sein.

Das ich die Klassenvariable auf diese Art überschreiben kann, ist mir schon klar. Ich möchte aber über den Key des Arrays, das ich aus der Funktion bekomme die Variable überschreiben.

Sven Petruschke hat gesagt.:
Zudem die Frage: Warum hast du mehere Klassenvariablen, die du wiederum in ein Array steckst, um dann das Array auszulesen, um dann wieder die Klassenvariable zu überschreiben? Kannst du nicht gleich das Array als Klassenvariable verwenden?

Die Funktion brauche ich an einer anderen Stelle genau so, wie ich sie geschrieben habe!
 
PHP:
$this->$tblTag = $value;
funktioniert ebenso.

Es ist ja auch gut so, wenn du nicht dein komplettes Script postetst - es sollte dennoch erkennbar sein, dass es syntaktisch korrekt ist. Es hätte ja wirklich falsch sein können.

Sven
 
Das funktioniert nur deshalb nicht, weil in $tblTag beispielsweise nur "align" steht und nicht "_TBLalign".
PHP:
$tblTag = '_TBL'.$tblTag;
$this->$tblTag = 'wert';
 
Zurück