例如,假设我的数据库中有3列:column1, column2, column3
我有3个与列名相同的变量:
$column1 = 'Column 1 value';
$column2 = 'Column 2 value';
$column3 = 'Column 3 value';
因此,如果我添加了' $
'在foreach循环中签名到列名,我将获得变量名。
$string = "column1, column2, column3";
function get_variable_names($string) {
$array = explode(", ", $string); // Convert to array
foreach ($array as $key => $value) {
$array_values_with_dollar[] = '$'.$value;
}
$imploded = implode(", ", $array_values_with_dollar); // Convert to string again
return $imploded;
}
$variable_string = get_variables($string);
现在,$variable_string
的值为:$column1, $column2, $column3
。 (字符串)。
是否可以输出变量的实际值,以便:
$variable_string => Column 1 value, Column 1 value, Column 1 value
[不使用eval()]
答案 0 :(得分:2)
您可以这样称呼它们:
echo ${'column1'};
所以如果你想做一个循环:
for($i=1; $i<=3; $i++)
echo ${'column' . $i} . '<br>';
如果你想要一个foreach,你可以这样做:
$string = 'column1, column2, column3';
$variables = explode(', ', $string);
foreach($variables as $variable)
echo $$variable . '<br>';
Column 1 value
Column 2 value
Column 3 value
有关详细信息:http://php.net/manual/en/language.variables.variable.php
答案 1 :(得分:1)
只需使用$$
代替$
$column1 = 'Column 1 value';
$column2 = 'Column 2 value';
$column3 = 'Column 3 value';
$string = "column1, column2, column3";
$array = explode(", ", $string);
foreach ($array as $elemnt){
echo $$elemnt . "<br>";
}
exit;
输出
Column 1 value
Column 2 value
Column 3 value
答案 2 :(得分:0)
我想,您可以使用此代码
.upload{
display:inline-block;
position:relative;
}
input{
position:absolute;
bottom:10px;
right:2px;
}
textarea{
display:block;
width:500px;
}
.image-upload > input
{
display: none;
}
.image-upload img
{
width: 40px;
cursor: pointer;
}
答案 3 :(得分:0)
使用list列出变量并在分隔符上爆炸。
List($column1, $column2, $column3) = explode(", ", "column1, column2, column3");