php
2013-01-16 42 views 3 likes 
3

此代碼被破壞,因爲我嵌套php代碼塊。什麼是正確的方法來做到這一點?如何嵌套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標籤逢行一個(我希望它只是接近第11行開幕PHP標籤)的第一個PHP開始標記。另外,我可能會使用< < < _END錯誤。

+0

使用http://pastie.org/向我們展示行號 – Afsar

回答

4

當你呼應,需要插入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>"; 
    } 
?> 
+0

OP使用heredoc語法,而不是打開和關閉標記,儘管在這種情況下,引號也會這樣做 –

+1

如果您使用雙引號,則不必打開/關閉引號以連接變量:echo「

」 – jx12345

+0

字符串連接。非常感謝。 Pankrates你是一個真正的巫師。 – wetjosh

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

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; 
+0

你有一個單引號出錯了順便說一句。 'post_ID = $ prev_ID'不應該有單引號。 – Pebbl

+0

是的。 Missed.that。現在修復它。 –

4

那你爲什麼不用這個?

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

只需關閉並重新打開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} 
    ?> 
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> 
      "; 
    } 
相關問題