0

我试图让这个 PHP 表格单元格根据条件写入颜色,但我错过了导致语法错误的东西?

这是代码:

$table = '<table>
<tr>
 <th> Qty </th>
 <th> Length </th>
 <th> Description </th>
 <th> Color </th>
</tr>
<tr>
 <td></td>
 <td></td>
 <td>'.$gauge. ' &nbsp; ' .$panel.  '</td>'
 if ($sscolor == "None")
   {
         '<td>' .$color. '</td>';    
   }
       else
   {
         '<td>' .$sscolor. '</td>';
   }
   '</td>
</tr> ';
4

4 回答 4

1

是的。您不能在字符串中放置 if/else 条件。不过,您可以使用三元组。

 $str = 'text'.($sscolor == 'None' ? $color : $sscolor).' more text'; // etc

否则,您需要在 if 之前结束字符串,然后使用.=

于 2013-06-14T18:28:34.327 回答
0

问题是您需要;在语句之前用分号 , 关闭字符串连接if。如果不这样做,您将收到语法错误:

<td>'.$gauge. ' &nbsp; ' .$panel.  '</td>' <-- Semicolon here
if ($sscolor == "None")                      <-- Syntax error, unexpected if token

避免此类事情的一个好方法是使用heredoc字符串:

// Figure out the color before going into the string
if ($sscolor === 'None') {
  $color = $sscolor;
}
// heredoc string, with string interpolation
$table = <<< HTML
  <table>
    <tr>
      <th>Qty</th>
      <th>Length</th>
      <th>Description</th>
      <th>Color</th>
    </tr>
    <tr>
      <td>-</td>
      <td>-</td>
      <td>{$gauge} &nbsp; {$panel}</td>
      <td>{$color}</td>
    </tr>
  </table>
HTML;

了解有关字符串的更多信息。

此外,即使是最好的 PHP 程序员也必须处理错误。它是学习 PHP 的一部分。因此,您应该养成使用谷歌搜索错误消息的习惯;它们很容易找到,您将能够在帮助自己的同时学习。

于 2013-06-14T19:10:31.700 回答
0

向变量写入一些字符串后,您不能在变量中放置 IF 条件我建议您这样做

if ($sscolor == "None")
   {
         $extra_string = '<td>' .$color. '</td>';    
   }
       else
   {
        $extra_string = '<td>' .$sscolor. '</td>';
   }
$table = '<table>
<tr>
 <th> Qty </th>
 <th> Length </th>
 <th> Description </th>
 <th> Color </th>
</tr>
<tr>
 <td></td>
 <td></td>
 <td>'.$gauge. ' &nbsp; ' .$panel.  '</td>' . $extra_string . '
</tr> ';
于 2013-06-14T18:38:41.140 回答
-1

您需要连接 if 语句中的行。

<td>'.$gauge. ' &nbsp; ' .$panel.  '</td>';
 if ($sscolor == "None") {
    $table .= '<td>' .$color. '</td>';    
 } else {
     $table .= '<td>' .$sscolor. '</td>';
 }
$table .= '</td>';  
于 2013-06-14T18:31:14.510 回答