简体   繁体   中英

PHP - How to avoid “echo” HTML when there is a need for conditional html blocks for example

Echoing HTML blocks in PHP is a pain, The echoed parts are not properly marked and parsed by IDE's since it's a string. This deficiency makes it very difficult to properly edit and change echoed html (especially with JavaScript). I wonder if there is an elegant solution except for using include in such cases.

Yes, you don't need to echo just close PHP tags , eg:

<ul>
<?php 
foreach($foo as $bar) {
?>
  <li> hi i'm <?=$bar;?> </li> 
<?
}
?>
</ul>

EDIT:

for even more readability (often used in MVC views + wordpress type systems) omit the curly braces:

<ul>
<?php 
foreach($foo as $bar):
?>
  <li> hi i'm <?=$bar;?> </li> 
<?
endforeach;
?>
</ul>

Here is another example using an alternative if-Syntax:

<?php if($a == 5): ?>
<p>A=5</p>
<?php endif; ?>

Just close and reopen the PHP tags

<?php
//blah blah PHP code
$title = 'My title';
?>
<section>
    <h1><?php echo $title; ?></h1>
</section>
<?php
//More PHP code

You can open and close PHP tags ( <?php ?> ) whenever you want:

<?php    
//php code    
?>

<!-- html goes here -->    

<?php    
//php code again    
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM