3

此代码已损坏,因为我正在嵌套 php 代码块。这样做的正确方法是什么?

<?php
        if ($prev_ID > $totalRows_totalBoogerRows)
        {
            echo "";
        }
        else
        {
            echo <<<_END
                <div class='paging_button_left paging_button_left_episode'>
                    <a href='episode.php?post_ID=<?php echo $prev_ID; ?>'>
                        <h4 style='text-align: right;'>Ep. <?php echo $prev_ID; ?>
                        </h4>
                    </a>
                </div>"
                _END;
        }
    ?>

我在第 11 行中断,因为我的结束 PHP 标记关闭了第一行的第一个 PHP 开始标记(我希望它只关闭第 11 行的开始 PHP 标记)。另外,我可能使用 <<<_END 错误。

4

6 回答 6

6

那你为什么不用这个?

<?php if(something): ?>
   HTML
<?php else: ?>
   HTML
<?php endif ?>

所以:

<?php if ( $prev_ID <= $totalRows_totalBoogerRows ): ?>
    <div class='paging_button_left paging_button_left_episode'>
       <a href='episode.php?post_ID=<?php echo $prev_ID ?>'>
          <h4 style='text-align: right;'>Ep. <?php echo $prev_ID ?></h4>
       </a>
    </div>
<?php endif ?>
于 2013-01-16T07:28:48.270 回答
5

当您回显需要插入 php 变量的字符串时,不要打开和关闭 php 标签,而是使用字符串连接:

<?php
    if ($prev_ID > $totalRows_totalBoogerRows)
    {
        echo "";
    }
    else
    {
        echo "
            <div class='paging_button_left paging_button_left_episode'>
                <a href='episode.php?post_ID=".$prev_ID."'>
                    <h4 style='text-align: right;'>Ep. ".$prev_ID."</h4>
                </a>
            </div>";
    }
?>
于 2013-01-16T07:24:34.443 回答
4

您的heredoc终止令牌_END在错误的位置。在它之前不能有任何空白。

请参阅 PHP.NET 手册String.Syntax.Heredoc中的警告。

需要注意的是,带有结束标识符的行不能包含其他字符,可能除了分号 (;)。这尤其意味着标识符可能不会缩进,并且分号之前或之后可能没有任何空格或制表符。同样重要的是要认识到结束标识符之前的第一个字符必须是本地操作系统定义的换行符。这是在 UNIX 系统上的 \n,包括 Mac OS X。结束分隔符(可能后跟分号)还必须后跟换行符。

此外,当您使用 heredoc 时,字符串被评估为双引号字符串。所以你可以像这样在里面使用变量。

            echo <<<_END
                <div class='paging_button_left paging_button_left_episode'>
                    <a href='episode.php?post_ID=$prev_ID'>
                        <h4 style='text-align: right;'>Ep. $prev_ID
                        </h4>
                    </a>
                </div>  
_END;
于 2013-01-16T07:27:56.387 回答
3

只需关闭并重新打开 PHP 标签

<?php
        if ($prev_ID > $totalRows_totalBoogerRows)
        {
            echo "";
        }
        else
        {?>
                <div class='paging_button_left paging_button_left_episode'>
                    <a href='episode.php?post_ID=<?php echo $prev_ID; ?>'>
                        <h4 style='text-align: right;'>Ep. <?php echo $prev_ID; ?>
                        </h4>
                    </a>
                </div>
        <?php}
    ?>
于 2013-01-16T07:29:58.080 回答
0

试试这个 ,

<?php
                if ($prev_ID > $totalRows_totalBoogerRows)
                {
                    echo "";
                }
                else
                {
                    echo <<<_END
                        <div class='paging_button_left paging_button_left_episode'>
                            <a href='episode.php?post_ID='.echo $prev_ID;'>
                                <h4 style='text-align: right;'>Ep. echo $prev_ID;
                                </h4>
                            </a>
                        </div>"
                        _END;
                }
            ?>
于 2013-01-16T07:25:00.150 回答
0

试试这个 :

if ($prev_ID > $totalRows_totalBoogerRows)
    {
        echo "";
    }
    else
    {
        echo "                
               <div class='paging_button_left paging_button_left_episode'>
                  <a href='episode.php?post_ID=\"$prev_ID\"'>
                     <h4 style='text-align: right;'>Ep. \"$prev_ID\"
                     </h4>
                  </a>
                </div>
             ";
    }
于 2013-01-16T07:31:00.147 回答