Variabler Variablenname

edit | delete

Autor: Ralf v.d.Mark, Vilma Plum

eingetragen: Donnerstag, 06. September 2007 um 09:57 Uhr (36/2007 Kalenderwoche)

geändert: Donnerstag, 17. November 2011 um 15:53 Uhr (46/2011 Kalenderwoche)

Keywords: varvar $$ dynamisch

Kategorien: PHP,

Text:

Zusammensetzen von Variablennamen.
Das letzte Beispiel kann nützlich sein, wenn man einen Datenbank-Input vorher bereinigen will.


Enthält auch eine nützliche Funktion zur String-Ausgabe (siehe Beispiel 4).

Quellcode:  

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ START => Beispiel 1: ~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//Die Start-Texte "$start_txt_?" werden durch Zufall ausgewaehlt:
$start_txt_1 = 'Text 1';
$start_txt_2 = 'Text 2';
$start_txt_3 = 'Text 3';
$start_txt_4 = 'Text 4';
$start_txt_5 = 'Text 5';
$varvar      = 'start_txt_'.rand(1, 5);//Variabler Variablenname
$start_txt   = $$varvar;
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ Ende Beispiel 1 ~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ START => Beispiel 2: ~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

for ($i = 1; $i < 6; $i++) {
    $varvar = 'varname_'.$i;
    $$varvar = 'Text '.$i;
    echo $$varvar.'<br/>';
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ Ende Beispiel 2 ~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~ START => Beispiel 3: (bei einem Array) ~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$arr_zur_bereinigung = array(
    'wert01',
    'wert02',
    'wert03'
);//das ist nur ein Beispielarray
foreach ($arr_zur_bereinigung as $value) {
    $$value = str_replace("'", "\'", $$value);
    $$value = str_replace("<br />", ", ", $$value);
    $$value = str_replace("<br>", ", ", $$value);
    echo $$value;
}
//folgendes nur zur Erklaerung:
//statt der foreach-Schleife war vorher folgendes noetig:
$wert01 = str_replace("'", "\'", $wert01);
$wert02 = str_replace("'", "\'", $wert02);
$wert03 = str_replace("'", "\'", $wert03);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ Ende Beispiel 3 ~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~ START => Beispiel 4: (bei Anzeige/Output)
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$string1 = 'String Nummer 1';
//$string2 = 'Diese Variable ist nicht definiert!';
$string3 = 'String Nummer 3';
echo stringOutput('string1');
echo stringOutput('string2');
echo stringOutput('string3');

/**
 * Einfache Ausgabe eines Strings
 * @param sting $wertName (Name der Variable ohne $)
 */
function stringOutput($wertName)
{
    global $$wertName;
    $wertSelf = ${$wertName};
    if (!empty($wertSelf)) {
        $saml = '<pre><strong>Query';
        $saml .= (!empty($wertName) ? ' *'.$wertName.'*' : '');
        $saml .= ':</strong>
                <br>
                '.$wertSelf.'
            </pre>
            <hr>';
        return $saml;
    }
}//ENDE: function

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~ Ende Beispiel 4 ~~~~~~~~~~~~~~~~~~~~~~~
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~