2017-01-08 3 views
0

Я хочу создать цикл for, чтобы отключить spicific переменные в массиве. я не могу найти ответ в Интернете. вот мой код.php - unset variable from variable array with for loop

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

echo $randomnumber; 

выход:

242 

я не знаю, что мне не хватает. пожалуйста, помогите мне, ребята. Я хочу отключить переменные «var1», «var2» и «randomnumber» в массиве «переменных». вывод должен быть «неопределенной переменной: $ randomnumber» или smth.

+1

Почему это? '$ randomnumber' не используется нигде в вашем цикле для цикла ... – Rizier123

+0

Я хочу, чтобы unset $ randomnumber, используя для цикла. – DoMajor7th

+0

Затем просто выполните 'unset ($ randomnumber);' ваш массив и цикл не имеют ничего общего с вашей переменной $ random_number – Rizier123

ответ

2

Код

unset($variables[$i]); 

означает

отключенное значение с ключом $i из массива $variables

Если вы хотите, чтобы сбросить переменную с именем $variables[$i], то вы должны использовать variable variable:

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

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

} 

echo $randomnumber; 
+0

ВЫ НЕВЕРОЯТНО. Спасибо. Я искал это в течение долгого времени! – DoMajor7th

+0

'count' - это O (1) как принятие значения от переменной, не так ли? –

+0

@u_mulder Еще вы считаете массив 3 раза вместо одного раза и сохраните значение в массиве. – Rizier123

0

проще и быстрее решение:

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

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

большое вам спасибо! – DoMajor7th