「長所」や「短所」はありません。それは好みと保守性に帰着します。
覚えておいてください=>あなたは本当にPHPとHTMLの構文を分離しているべきです。PHPとHTMLを別々のファイルに保存します。これは保守性と他の多くの理由によるものです(検索すると多くの情報があります)。2つのことを完全に分離する方法はありません...常にPHP変数をHTMLなどに挿入する必要がありますが、これは最小限に抑える必要があります。
したがって、Wordpress、Codeigniterなどのテンプレートファイルでその代替構文を使用することを好みます。これは、テンプレートファイルのHTMLにPHPを挿入しているため、これらのPHPブロックを分離したままにするためです。
すなわち私に:
<?php
if(something){
// this is a block of PHP
// if you want to output html in here
// it seems right to do
echo "<div>Here is some HTML</div>";
}
?>
およびその逆:
<div>
<!-- this is a template file and is written in html -->
Hello <?=$username?> <!-- inserting PHP into HTML -->
<?php if(something): ?> <!-- keep it insular - in its own separate blocks, don't mix the two -->
<button>A button</button>
<?php endif; ?>
</div>
繰り返しになりますが、「技術的な利点」はなく、よりクリーンで優れています(IMO)。これは、PHPとHTMLが混ざりすぎています。
<div><!-- straight html -->
<?php
if(something){
echo "<button>A Button</button>"; <!-- html output via php -->
}
?>
</div>
そして、これは明らかにひどいです:
<div>
<?php
if(something){
?>
<button>A Button</button>
<!-- make your mind up! -->
<?php
}
?>
</div>