php语法混淆访问数据库结果

时间:2010-03-12 13:04:59

标签: php codeigniter syntax

我正在尝试执行以下操作:

<?php foreach($sqlResult as $row): ?>
    <tr>
        <?php foreach($formdata['columns'] as $column): ?>
            <td><?php echo $row->$column['name']; ?></td>
        <?php endforeach; ?>
    </tr>
<?php endforeach; ?>

这不起作用。

我的mysql查询返回$ row,它有以下内容:$ row-&gt; id,$ row-&gt; author,$ row-&gt; date,$ row-&gt; title和这些工作因为它们回显细

$ columns是以下数组:

'columns' => array
(
    1 => array
(
    'name' => 'id'
),
    2 => array
(
    'name' => 'author'
),
    3 => array
(
    'name' => 'date'
),
    4 => array
(
    'name' => 'title'
)

它也可以正常工作,因为$ column ['name']回应id,作者,日期,标题

我的问题是如何通过从数组中传递一个名称来访问$ row-&gt;方法(它是一个方法吗?)?

2 个答案:

答案 0 :(得分:1)

我不是百分百肯定我明白你想做什么,但我认为你想要这个:

 <td><?php echo $row->{$column['name']}; ?></td>

注意大括号。他们确保将$column["name"]完全解释为您要访问的属性。现在,您正在访问名为$column的属性及其数组键name

答案 1 :(得分:1)

尝试做:

$column_name = $column['name'];
echo $row->$column_name;

echo $row->{$column['name']}

无论哪种感觉更具可读性。