你可以在PHP echo标签内回显PHP,避免使用撇号吗?

时间:2013-10-29 23:33:17

标签: php

我面临的问题是只有'rr_pos_1'标签     <?php if (isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : null) echo "$rr_pos_1"; ?>由于撇号(')而输出php错误。无论如何我可以通过使用下面相同的打印方法来避免这个错误吗?

这是我的PHP代码:

<?php
switch (isset($_POST['chk']) ? $_POST['chk'] : null){
    case 'Rigid Rail':
        echo '
        <table>
            <tr>
                <td>Notes & Comments: <?php if (isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : null) echo "$rr_pos_1"; ?></th>
            </tr>
        </table>';
}
?>

4 个答案:

答案 0 :(得分:0)

在案例后使用HEREDOC语法或结束php解释:

switch ($a) {
case "foo":  ?>
   bla bla html <?php echo $a ?> 
<?php break;
}

答案 1 :(得分:0)

 <?php switch (isset($_POST['chk']) ? $_POST['chk'] : null){
   case 'Rigid Rail': ?>
  <table>
    <tr>
     <td>Notes & Comments: 
      <?php echo (isset($_POST['rr_pos_1'])) ? $_POST['rr_pos_1'] : null; ?>
     </td>
    </tr>
 </table>

 <?php break; }?>

是的,只是不要把它放在PHP标签内。

答案 2 :(得分:0)

您也可以稍微编辑自己的代码;

我希望自己稍微编辑代码,因为我认为检查应该在切换之前完成并检查它是否存在

<?php
// Check the value exists
$value = (array_key_exists('chk', $_POST) && is_string($_POST['chk']) && !empty($_POST['chk'])) 
       ? $_POST['chk'] : FALSE ;

// Check it passed and holds a value
if ($value)
{
    // Now you know it exists, use the switch
    switch ($value) 
    {
        case "Rigid Rail":
            echo '
            <table>
                <tr>
                    <td>
                    Notes & Comments: 
                    ' . ( isset($_POST['rr_pos_1']) ? $_POST['rr_pos_1'] : '' ) . '
                    </td>
                </tr>
            </table>';
        break;
    }
}

答案 3 :(得分:0)

我认为isset

不需要三元运算符
<?php
switch (isset($_POST['chk'])){
case 'Rigid Rail':
    ?>
<table>
<tr>
<td>Notes & Comments: <?php if (isset($_POST['rr_pos_1'])) echo "$rr_pos_1"; ?></td>
</tr>
</table>
<?php
}
?>