2017-01-08 5 views
0

Ich möchte eine for-Schleife erstellen, um die spezifischen Variablen in einem Array zu deaktivieren. Ich kann keine Antwort im Internet finden. Hier ist mein Code.php - Variable aus Variable Array mit For-Schleife nicht setzen

$randomnumber=242; 
$variables= array('var','var2','randomnumber'); 
for ($i = 0; $i < count($variables); $i++) { 
unset($variables[$i]); 
} 

echo $randomnumber; 

Ausgabe lautet:

242 

Ich weiß nicht, was bin ich dabei. Bitte hilf mir Jungs. Ich möchte Variablen "var1", "var2" und "randomnumber" im Array von "Variablen" aufheben. Ausgabe sollte "undefined Variable: $ Zufallszahl" oder etw so sein.

+1

Warum sollte es? '$ random_number' wird nirgendwo in Ihrem for-loop-code verwendet ... – Rizier123

+0

ich möchte $ randomnumber mit for loop löschen. – DoMajor7th

+0

Dann tun Sie einfach 'unset ($ randomnumber);' Ihr Array und for-Schleife haben nichts mit Ihrer '$ random_number'-Variable – Rizier123

Antwort

2

-Code

unset($variables[$i]); 

bedeutet

ungesetzt Wert mit Schlüssel $i von Array $variables

Wenn Sie $variables[$i] eine Variable mit Namen unscharf zu schalten wollen, dann sollten Sie variable variable verwenden:

$randomnumber=242; 
$variables= array('var','var2','randomnumber'); 
for ($i = 0; $i < count($variables); $i++) { 

    // variable variable syntax here 
    unset(${$variables[$i]}); 

} 

echo $randomnumber; 
+0

SIE SIND UNGLAUBLICH. Danke. Ich habe lange danach gesucht! – DoMajor7th

+0

'count' ist O (1) wie ein Wert aus einer Variablen, nicht wahr? –

+0

@u_mulder Noch immer zählen Sie das Array dreimal statt nur einmal und speichern Sie den Wert in einem Array. – Rizier123

0

einfachere und schnellere Lösung:

$randomnumber = 242; 
$variables = ['var', 'var2', 'randomnumber']; 

foreach ($variables as $variableName) { 
    unset($$variableName); 
} 
+0

vielen dank! – DoMajor7th