好吧,我有这个由3个对象数组组成的数组,所以它看起来像
$invoice
$invoice->foo
$invoice->foo->bars
$invoice->bars
$invoice->foobars
我把所有的foo条显示在像
这样的表中<?php foreach($invoice->foo->bars as $bar) { ?>
<tr>
<td>
<?php echo $bar->some_field;
</td>
<td>
<?php echo $bar->another_field;
</td>
</tr>
我有一个下拉按钮,看起来像
<ul>
<li><a href="some_url/edit/$bar->id">edit</a></li>
<li><a href="some_url/delete/$bar->id">Delete</a></li>
<li><a href="some_url/add_foobar/$bar->id">Add foobar</a></li>
</ul>
我目前是否会通过这样做来检查酒吧是否有foobar
for ($i=0; $i < count($invoice->foobars); $i++) {
$foobar_bars[] = $invoice->foobars[$i]->foobar_bar_id;
}
并在$ invoice-&gt; foo-&gt;栏圈内我检查以显示按钮
<ul>
<li><a href="some_url/edit/$bar->id">edit</a></li>
<li><a href="some_url/delete/$bar->id">Delete</a></li>
<?php if(!in_array($bar->dd_id, $companion_bars)){ ?>
<li><a href="some_url/add_foobar/$bar->id">Add Foobar</a></li>
<?php } ?>
</ul>
我想知道这是否是最有效的方法,或者是更好的方法来检查酒吧是否有foobar
答案 0 :(得分:0)
我认为最有效的方法是实际上有一个方法告诉你是否是这种情况:
if ($bar->hasCompanionBar()) {
// the condition is TRUE
}
通过这种方式,您可以将决策推迟到以后最有效的方面。这将允许您在代码库的生命周期内创建最有效的代码。