[英]How to put if condition inside php string properly
我有以下代碼來打印一些數據,
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th><th>Time</th></tr>"
.if(count($result->http_response_body->items) > 0) {
foreach ($result->http_response_body->items as $key) {.
"<tr>
<td>". $key->recipient . "</td>
<td>". $key->event . "</td>
<td>" . @$key->tags[0] . "</td>
<td>" . date("r", $key->timestamp) . "</td>
</tr>"
.}
//fetchLogs($result);
}.
"</table>";
echo $html;
當我執行代碼時,它會給出語法錯誤,意外的“ if”條件。 如何在表字符串中插入條件和其他變量。 請幫忙。
你有很多語法錯誤
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th> <th>Time</th></tr>";
if ( count( $result->http_response_body->items ) > 0 ) {
foreach ( $result->http_response_body->items as $key ) {
$html .= "<tr>
<td>" . $key->recipient . "</td>
<td>" . $key->event . "</td>
<td>" . @$key->tags[ 0 ] . "</td>
<td>" . date( "r", $key->timestamp ) . "</td>
</tr>";
}
//fetchLogs($result);
}
$html .= "</table>";
echo $html;
另外,不要抑制錯誤( @$key->tags[0]
)。 首先使用isset
進行正確的檢查。 或者,如果您使用的是php7,則可以使用空合並運算符,例如$key->tag[0] ?? 'something else'
$key->tag[0] ?? 'something else'
。
請嘗試這個
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th><th>Time</th></tr>" ;
if(count($result->http_response_body->items) > 0) {
foreach ($result->http_response_body->items as $key) {
$html.= "<tr>
<td>". $key->recipient . "</td>
<td>". $key->event . "</td>
<td>" . @$key->tags[0] . "</td>
<td>" . date("r", $key->timestamp) . "</td>
</tr>";
}
//fetchLogs($result);
}
$html.="</table>";
echo $html;
首先,PHP語句以;
結束;
那是分號。
因此,您的第一條語句需要更正為:
<?php
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th><th>Time</th></tr>";
if (count($result->http_response_body->items) >0) { // Removed dot
foreach ($result->http_response_body->items as $key) { // Removed dot
$html .= "<tr><td>" .$key->recipient ."</td>
<td>" .$key->event ."</td>
<td>" .@$key->tags[0] ."</td>
<td>" .date("r", $key->timestamp) ."</td></tr>";
} // Removed Dot.
// fetchLogs($result);
}
$html .= "</table>";
echo $html;
?>
訣竅很簡單,您只需要了解字符串的隱含意義,一旦掌握了這些知識,就可以編寫像這樣的復雜字符串。
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th><th>Time</th></tr>";
if(count($result->http_response_body->items) > 0) {
foreach ($result->http_response_body->items as $key) {
$html."<tr>
<td>". $key->recipient . "</td>
<td>". $key->event . "</td>
<td>" . @$key->tags[0] . "</td>
<td>" . date("r", $key->timestamp) . "</td>
</tr>";
}
}
$html."</table>";
echo $html;
代碼中有語法錯誤。您可以使用此
$html = "<table><tr><th>Email Address</th><th>Event</th><th>Tag</th> <th>Time</th></tr>";
if ( count( $result->http_response_body->items ) > 0 ) {
foreach ( $result->http_response_body->items as $key ) {
$html .= "<tr>
<td>" . $key->recipient . "</td>
<td>" . $key->event . "</td>
<td>" . @$key->tags[ 0 ] . "</td>
<td>" . date( "r", $key->timestamp ) . "</td>
</tr>";
}
}
$html .= "</table>";
echo $html;
除了使用可能導致大字符串性能下降的字符串連接之外,我個人更喜歡使用添加項的數組-最終內爆以輸出到屏幕。
<?php
$html=array();
$html[]="
<table>
<tr>
<th>Email Address</th>
<th>Event</th>
<th>Tag</th>
<th>Time</th>
</tr>";
if ( count( $result->http_response_body->items ) > 0 ) {
foreach ( $result->http_response_body->items as $key ) {
$html[]= "
<tr>
<td>{$key->recipient}</td>
<td>{$key->event}</td>
<td>{@$key->tags[ 0 ]}</td>
<td>" . date( "r", $key->timestamp ) . "</td>
</tr>";
}
}
$html[]= "</table>";
echo implode( PHP_EOL, $html);
unset( $html );
?>
另一種方法是:
<table>
<tr>
<th>Email Address</th>
<th>Event</th>
<th>Tag</th>
<th>Time</th>
</tr>
<?php if(count($result->http_response_body->items) > 0) : ?>
<?php foreach ($result->http_response_body->items as $key):?>
<tr>
<td><?php echo $key->recipient; ?></td>
<td><?php echo $key->event?; ?></td>
<td><?php echo @$key->tags[0]; ?></td>
<td><?php echo date("r", $key->timestamp); ?></td>
</tr>
<?php endforeach;?>
<?php endif;?>
</table>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.