Привет, мой вопрос о переменных переменных PHP.
В основном я хочу хранить курсовые метки из n курсовых работ в n переменных, таких как cw1 и cw2 и т. Д. Используя переменные переменные, как я могу использовать cw1, cw2 и т. Д.
Вместо этого используйте массив :
Массив в PHP на самом деле является упорядоченной картой. Карта – это тип, который связывает значения с ключами. Этот тип оптимизирован для нескольких различных применений; он может рассматриваться как массив, список (вектор), хеш-таблица (реализация карты), словарь, коллекция, стек, очередь и, возможно, больше. Поскольку значениями массива могут быть другие массивы s, также возможны деревья и многомерный массив s …
Вы действительно должны использовать массив, как писал Gumbo :
$cw = array(); for($i = 0; $i < $n; ++$i) { $cw[] = $something; }
Однако решение вашей проблемы:
for($i = 0; $i < $n; ++$i) { $tmp = 'cw' . $i; $$tmp = $something; }
Не совсем уверен, что я понимаю вопрос, но вы можете сделать что-то вроде этого:
$VarName = 'cw1'; $$Varname = 'Mark Value';
Если у вас их много, вам может быть лучше использовать массив для них, с индексами, основанными на курсовой работе.
то есть:
$a = array(); $a['cw2'] = cw2value; // etc.
<?php
// Вы даже можете добавить больше знаков доллара
$Bar = "a"; $Foo = "Bar"; $World = "Foo"; $Hello = "World"; $a = "Hello"; $a; //Returns Hello $$a; //Returns World $$$a; //Returns Foo $$$$a; //Returns Bar $$$$$a; //Returns a $$$$$$a; //Returns Hello $$$$$$$a; //Returns World
//… и так далее …//
?>
php > for ($i=0; $i<5; $i++) { ${"thing{$i}"} = $i; } php > echo $thing1; 1 php > echo $thing2; 2 php > echo $thing3; 3
Обратите внимание, что мы используем знак доллара вокруг фигурных скобок вокруг строки.
Переменные переменные работают таким образом
$var = "foo"; $$var = "bar"; echo $foo; // bar
Но я не рекомендую это делать, поскольку, если значение переменной $ var изменяется, вы больше не сможете распечатать третью строку в этом коде.
Если бы вы могли подробнее рассказать о том, что хотите, я думаю, что мы могли бы помочь вам больше.