Nhận xét HTML và PHP cùng nhau


91

Tôi có mã này,

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

và tôi rất muốn nhận xét cả hai trong một lần chụp ... nhưng khi tôi thử

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

trang bị lỗi - có vẻ như mã PHP không được nhận xét ... Có cách nào để làm điều này không?

Câu trả lời:


179

Thay vì sử dụng các bình luận HTML (không ảnh hưởng đến mã PHP - sẽ vẫn được thực thi) , bạn nên sử dụng các bình luận 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>
*/ ?>


Cùng với đó, mã PHP bên trong HTML sẽ không được thực thi; và không có gì (không phải HTML, không phải PHP, không phải kết quả của việc không thực thi) sẽ được hiển thị.


Chỉ cần một lưu ý: bạn không thể lồng các bình luận kiểu C ... có nghĩa là bình luận sẽ kết thúc ở lần */gặp đầu tiên .


Điều này thực sự thêm một chút nữa (bạn cần các thẻ PHP cũng như đánh dấu nhận xét PHP), nhưng đây là cách tốt nhất để làm điều này, tôi đồng ý.
qJake

Nhưng sau đó, khi bỏ ghi chú, anh ta cũng phải xóa các thẻ <? Php và?>, Việc này sẽ tốn nhiều công sức hơn một chút.
Flipper

4
@flipper: vậy? đó là một vài ký tự bổ sung so với việc phải tách từng khối mã PHP bằng tay.
Marc B

Thật thú vị, có vẻ như NetBeans 8.0.2 không hiểu điều này (và do đó định dạng mã của tôi không chính xác mặc dù đây là một cách hợp lệ để nhận xét về HTML).
Ryan

phím tắt để làm điều đó trong trình soạn thảo văn bản tuyệt vời là gì? Tôi biết ctrl + c nhưng điều đó không có ý kiến ​​PHP.
yadavr

42

Tôi đồng ý rằng giải pháp của Pascal là một giải pháp tốt nhất, nhưng đối với những người nói rằng nó thêm một nhiệm vụ bổ sung để xóa các bình luận, bạn có thể sử dụng thủ thuật tạo kiểu bình luận sau để đơn giản hóa cuộc sống của mình:

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

Để ngăn khối mã bị nhận xét, chỉ cần thay đổi nhận xét mở thành:

<?php //* ?>

Giải pháp này không dẫn đến hai hàng trống, mỗi hàng có hai ô trống, vẫn xuất hiện trong HTML?
Sparr

1
Không, nó không. Hãy thử nó và xem! ;)
Nev Stokes,

6

Tôi thấy giải pháp sau đây khá hiệu quả nếu bạn cần bình luận nhiều mã HTML + PHP lồng nhau.

Gói tất cả nội dung trong này:

<?php
    if(false){
?>

Here goes your PHP + HTML code

<?php
    }
?>

Đây là giải pháp duy nhất thực sự hiệu quả , tôi không hiểu tại sao đây không phải là câu trả lời hàng đầu :) Cảm ơn rất nhiều, anh bạn!
bviktor

Đối với 3 người thực sự có nghĩa là câu hỏi này theo cách nó được hỏi: NÀY ^ là câu trả lời của bạn;) - Lưu ý: Tôi khuyên bạn nên sử dụng if (false): - endif; cú pháp, vì nó có thể rõ ràng hơn đối với nhà phát triển tiếp theo rằng nó có nghĩa là ảnh hưởng đến đánh dấu
MJHd

4

Các <!-- -->chỉ dành cho HTML cho ý kiến và PHP sẽ vẫn chạy anyway ...

Vì vậy, điều tốt nhất tôi sẽ làm là nhận xét về PHP ...


2

Bạn chỉ có thể thực hiện điều này với các bình luận 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> -->

Cách thức hoạt động của PHP và HTML, nó không thể nhận xét ngay lập tức trừ khi bạn làm:

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

Trình phân tích cú pháp PHP sẽ tìm kiếm toàn bộ mã của bạn cho <?php(hoặc <?nếu short_open_tag = Bật), vì vậy các thẻ nhận xét HTML không ảnh hưởng đến hành vi của trình phân tích cú pháp PHP và nếu bạn không muốn phân tích mã PHP của mình, bạn phải sử dụng chỉ thị nhận xét PHP ( /* */hoặc //) .


0

Bạn cũng có thể sử dụng nó như một bình luận:

<?php
    /* get_sidebar(); */

?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.