簡體   English   中英

如何正確放置條件如果在PHP字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM