如何嵌套PHP代码块


how to nest PHP code blocks

这段代码被打破了,因为我嵌套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

当您回显需要插入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>";
    }
?>

为什么不用这个呢?

<?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 ?>

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

查看来自PHP的警告。净手册<一口> 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;

关闭并重新打开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}
    ?>

try this,

<?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;
                }
            ?>

try this:

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>
             ";
    }