I have created an array, one of the is intended to be a string used by php to display a field from a record retrieved from sqlite3.
我创建了一个数组,其中一个是php用来显示从sqlite3检索的记录中的字段的字符串。
My problem is that ... it doesn't.
我的问题是……它不是。
The array is defined, "1" being the first database field, and "2" is the second database field:
该数组定义为“1”为第一个数据库字段,“2”为第二个数据库字段:
EDIT : I have re-defined the problem as a script so you can see the whole thing:
编辑:我把这个问题重新定义为一个脚本,这样你就可以看到整个事情了:
//If I have an array (simulating a record retrieved from database):
$record = array(
name => 'Joe',
comments => 'Good Bloke',
);
//then I define an array to reference it:
$fields = array(
1 => array(
'db_index' => 'name',
'db_type' => 'TEXT',
'display' => '$record["name"]',
'form_label' => 'Name',
),
2 => array(
'db_index' => 'comments',
'db_type' => 'TEXT',
'display' => '$record["comments"]',
'form_label' => 'Comments',
),
);
//If I use the lines:
print "expected output:\n";
print " Name = " . $record["name"] ."\n";
print " Comments = " . $record["comments"] ."\n";
//I display the results from the $record array correctly.
//However if I try & use the fields array with something like:
Print "Output using Array values\n";
foreach($GLOBALS["fields"] as $field)
{
$label = $field['form_label'];
$it = $field['display'];
$line = "\"$label = \" . $it .\"\n\"";
print $line;
}
Output:
输出:
Expected output:
Name = Joe
Comments = Good Bloke
Output using Array values:
Name = $record["name"]
Comments = $record["comments"]
1 个解决方案
#1
0
Don't call variable from string. Just concatenate it :
不要从字符串调用变量。只是连接:
foreach($GLOBALS["fields"] as $field){
$label = $field['form_label'];
$it = $field['display'];
eval("$it = ".$it);
$line = $label." = ".$it."\n";
print $line;
}
Well, how do it looks ?
它看起来怎么样?
#1
0
Don't call variable from string. Just concatenate it :
不要从字符串调用变量。只是连接:
foreach($GLOBALS["fields"] as $field){
$label = $field['form_label'];
$it = $field['display'];
eval("$it = ".$it);
$line = $label." = ".$it."\n";
print $line;
}
Well, how do it looks ?
它看起来怎么样?