แสดงความคิดเห็น HTML และ PHP ร่วมกัน


92

ฉันมีรหัสนี้

    <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>

และฉันชอบที่จะแสดงความคิดเห็นทั้งในช็อตเดียว ... แต่เมื่อฉันลอง

    <!-- <tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr> -->

หน้าเว็บล้มเหลว - ดูเหมือนว่าโค้ด PHP จะไม่ถูกแสดงความคิดเห็น ... มีวิธีดำเนินการนี้หรือไม่?

คำตอบ:


182

แทนที่จะใช้ความคิดเห็น HTML (ซึ่งไม่มีผลกับโค้ด PHP - ซึ่งจะยังคงถูกเรียกใช้งาน)คุณควรใช้ความคิดเห็น PHP:

<?php /*
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
*/ ?>


ด้วยเหตุนี้โค้ด PHP ภายใน HTML จะไม่ถูกเรียกใช้งาน และจะไม่มีอะไร(ไม่ใช่ HTML ไม่ใช่ PHP ไม่ใช่ผลลัพธ์ของการไม่ดำเนินการ)จะปรากฏขึ้น


หมายเหตุเพียงข้อเดียว: คุณไม่สามารถซ้อนความคิดเห็นสไตล์ C ได้... ซึ่งหมายความว่าความคิดเห็นจะสิ้นสุดเมื่อ*/พบครั้งแรก


สิ่งนี้เพิ่มขึ้นเล็กน้อย (คุณต้องมีแท็ก PHP และมาร์กอัปความคิดเห็น PHP) แต่นี่เป็นวิธีที่ดีที่สุดในการทำเช่นนี้ฉันเห็นด้วย
qJake

แต่แล้วเมื่อเขาไม่แสดงความคิดเห็นเขาก็ต้องลบแท็ก <? php และ?> ออกไปด้วยซึ่งเป็นงานที่น้อยกว่า
Flipper

4
@flipper: เหรอ? มันเป็นอักขระพิเศษเพียงไม่กี่ตัวและต้องคัดลอกโค้ด PHP ทุกบล็อกด้วยมือ
Marc B

ที่น่าสนใจดูเหมือนว่า NetBeans 8.0.2 ไม่เข้าใจสิ่งนี้ (ดังนั้นจึงจัดรูปแบบโค้ดของฉันไม่ถูกต้องแม้ว่านี่จะเป็นวิธีที่ถูกต้องในการแสดงความคิดเห็น HTML)
Ryan

ทางลัดที่จะทำในโปรแกรมแก้ไขข้อความประเสริฐคืออะไร? ฉันรู้ ctrl + c แต่นั่นไม่ได้แสดงความคิดเห็น PHP
yadavr

42

ฉันยอมรับว่าวิธีแก้ปัญหาของ Pascal เป็นหนทางที่จะไป แต่สำหรับผู้ที่บอกว่าจะเพิ่มภารกิจพิเศษในการลบความคิดเห็นคุณสามารถใช้เคล็ดลับสไตล์ความคิดเห็นต่อไปนี้เพื่อทำให้ชีวิตของคุณง่ายขึ้น:

<?php /* ?>
<tr>
      <td><?php echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php echo $sort_order; ?>" size="1" /></td>
    </tr>
<?php // */ ?>

ในการหยุดการบล็อกโค้ดที่แสดงความคิดเห็นเพียงแค่เปลี่ยนความคิดเห็นเปิดเป็น:

<?php //* ?>

วิธีนี้ไม่ส่งผลให้แถวว่างสองแถวแต่ละเซลล์มีเซลล์ว่างสองเซลล์ยังคงปรากฏใน HTML หรือไม่
Sparr

1
ไม่มันไม่ได้ ลองดูสิ! ;)
Nev Stokes

6

ฉันพบว่าวิธีแก้ปัญหาต่อไปนี้ค่อนข้างมีประสิทธิภาพหากคุณต้องการแสดงความคิดเห็นโค้ด HTML + PHP ที่ซ้อนกันจำนวนมาก

สรุปเนื้อหาทั้งหมดในนี้:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>

นี่เป็นทางออกเดียวที่ใช้งานได้จริงฉันไม่เข้าใจว่าทำไมนี่ไม่ใช่คำตอบยอดนิยม :) ขอบคุณมากเพื่อน!
bviktor

สำหรับ 3 คนที่หมายถึงคำถามนี้ตามที่ถามจริง ๆ : นี่ ^ คือคำตอบของคุณ;) - หมายเหตุ: ฉันแนะนำ if (เท็จ): - endif; ไวยากรณ์เนื่องจากมันอาจชัดเจนมากขึ้นสำหรับ dev ถัดไปที่มีผลต่อมาร์กอัป
MJHd

4

ใช้<!-- -->สำหรับการแสดงความคิดเห็น HTML เท่านั้นและ PHP จะยังคงทำงานต่อไป ...

ดังนั้นสิ่งที่ดีที่สุดที่ฉันจะทำคือแสดงความคิดเห็นเกี่ยวกับ PHP ...


2

คุณสามารถทำได้ด้วยความคิดเห็น PHP เท่านั้น

 <!-- <tr>
      <td><?php //echo $entry_keyword; ?></td>
      <td><input type="text" name="keyword" value="<?php //echo $keyword; ?>" /></td>
    </tr>
    <tr>
      <td><?php //echo $entry_sort_order; ?></td>
      <td><input name="sort_order" value="<?php //echo $sort_order; ?>" size="1" /></td>
    </tr> -->

วิธีการทำงานของ PHP และ HTML จะไม่สามารถแสดงความคิดเห็นได้ในคราวเดียวเว้นแต่คุณจะทำ:

<?php

/*

echo <<<ENDHTML
 <tr>
          <td>{$entry_keyword}</td>
          <td><input type="text" name="keyword" value="{echo $keyword}" /></td>
        </tr>
        <tr>
          <td>{$entry_sort_order}</td>
          <td><input name="sort_order" value="{$sort_order}" size="1" /></td>
        </tr>
ENDHTML;

*/
?>

0

โปรแกรมแยกวิเคราะห์ PHP จะค้นหาโค้ดทั้งหมดของคุณสำหรับ<?php(หรือ<?ถ้า short_open_tag = On) ดังนั้นแท็กความคิดเห็น HTML จึงไม่มีผลต่อพฤติกรรมของตัวแยกวิเคราะห์ PHP และหากคุณไม่ต้องการแยกวิเคราะห์โค้ด PHP คุณต้องใช้คำสั่งการแสดงความคิดเห็น PHP ( /* */หรือ//) .


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.