[英]Can I use PHP try/catch around a large block of HTML?
我想將整個代碼塊放在try / catch中,因為當網格數組中沒有內容時,它會導致錯誤。 最好的方法是什么?
<?php foreach ($grid->result() as $idx => $row): ?> <?php if ($idx % 3 == 2): ?>
<div class="img_grid_3"><img src="/images/thumb/<?= $row->images_name; ?>" /></div>
<?php else: ?>
<div class="img_grid"><img src="/images/thumb/<?= $row->images_name; ?>" /></div>
<?php endif; ?>
<?php endforeach; ?>
謝謝
也許我錯過了重點,但是為什么在進行foreach之前不測試$ grid?
<?php if($grid): ?>
.... foreach ....
<?php endif; ?>
如果我說對了,那么您正在尋找@
錯誤抑制運算符。 如果將空數組傳遞給foreach,則會收到PHP警告,您無法使用try/catch
塊來try/catch
。
<?php @foreach ($grid->result() as $idx => $row): ?>
<?php if ($idx % 3 == 2): ?>
<div class="img_grid_3"><img src="/images/thumb/<?= $row->images_name; ?>" /></div>
<?php else: ?>
<div class="img_grid"><img src="/images/thumb/<?= $row->images_name; ?>" /></div>
<?php endif; ?>
<?php endforeach; ?>
也可以對HTML內容使用try catch塊,但是顯然只能捕獲Exceptions
。
請注意,在foreach
塊中使用數組之前,檢查數組是否為空是比較干凈的。
如果數組為空,則foreach
不會產生錯誤。
因此,要么$grid
不是對象,要么result()
返回一個非數組,如false
或null
。 如果是前者,則用后者的if ($grid)
包圍foreach
,而不是使用if (!empty($grid->result()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.