PHP模板-使用extract()并按对象访问vars.数组已给定


PHP Template - Using extract() and access vars by object. Array is given

我希望在我的模板文件中有这样的东西:

<ul>
<?foreach($friends as $var):?>
        <li>
            <?=$var->name?>
        </li>
<?endforeach ?>
</ul>

我在我的模型中使用这个。hp:

$data = array('friends' => array(
    array('name' => 'testname'),
    array('name' => 'testname2')
));
// missing code here ?
extract($data, EXTR_SKIP);
include('template_file.html');

如何使用$var->name访问模板文件中的对象"name"?

$data=array()已设置。

更新:

这是因为,我不想在我的模板中使用<?=$var['name']?>

<ul>
<?
foreach($data as $eachData)
{
 foreach($eachData as $var):?>
  {
        <li>
            <?php echo $var->name?>
        </li>
<?php 
  }
} ?>
</ul>

$var->name:这是获取对象中valus的方法。

在数组中,要获取值,请这样使用:$var['name']

要将数组转换为对象,请参阅以下内容:如何在PHP中将数组转换成对象?

考虑到这一点:

$data = array('friends' => array(
    array('name' => 'testname'),
    array('name' => 'testname2')
));
<?foreach($data['friends'] as $var):?>
    <li>
        <!-- $var will be testname2 -->
        <?=$var; ?>
    </li>
<?endforeach ?>
<?foreach($data['friends'] as $key => $var):?>
    <li>
        <!-- $var will be testname2, $key will be "name" -->
        <?=$var; ?>
    </li>
<?endforeach ?>

您应该过多考虑数组键的命名。每个值都必须有一个新键,否则将覆盖以前设置的值。