2014-01-22 3 views
-1

мне было интересно, если это было возможно динамически создавать переменные, как так:Можете ли вы превратить PHP-текст в переменную?

$sender = $email = $number = $message = ""; 

foreach ($_POST as $key => $value) { 
    if isset & !empty //loosely typed 
    $+key = $value // can something like this be done? 
} 

если да, то как?

+1

http://www.php.net/manual/en/language.variables.variable.php – PeeHaa

+0

Большое спасибо, интересно. – user2979139

+2

np. Обратите внимание, что я на 99.999% уверен, что вы действительно ищете 'array' вместо этого. – PeeHaa

ответ

2

PHP действительно есть variable variables, но вам не нужно, что здесь. Я думаю, что простой ассоциативный массив или объект будут работать отлично для вас.

$data = array(
    'sender' => 'Someone', 
    'email' => '[email protected]', 
    'number' => 12345, 
    'message' => 'some message' 
); 

echo $data['sender']; // Someone 
+2

«вам не нужно это здесь» можно в значительной степени заменить на «вам это не нужно ** когда-либо **» - мне еще предстоит увидеть фрагмент кода с использованием переменных, которые не были бы лучше с ассоциативной массив. – IMSoP

+0

, в то время как я согласен, что массив здесь лучше, если OP использует $ _POST, как в своем примере, он уже находится в массиве. –

+0

@JonathanKuhn Согласен, если это необходимый формат. Я читал, что ему нужно немного изменить структуру, но это хороший момент в зависимости от его намерений. – Brad

0

Что-то вроде этого должно работать. Но я бы не стал это делать, если вы полностью доверяете данные и, если его данные POST, то доступ к нему, как $_POST['key']

foreach ($_POST as $key => $value) { 
    if isset & !empty //loosely typed 
    ${$key} = $value // can something like this be done? 
} 
+0

Ах, который ударил ноготь по голове, спасибо. – user2979139

-1

Существует функция PHP называется extract, который делает то, что вы ищете.

http://nz2.php.net/extract

+0

Это не учитывает пустые значения. – PeeHaa

+1

Извлечение является неприятной функцией и НИКОГДА не должно использоваться. –

Смежные вопросы