There is no "advantage" or "disadvantage". It comes down to preference and maintainability.
REMEMBER => You should really be SEPARATING PHP and HTML syntax. Keep your PHP and your HTML in separate files - this is for maintainability and lots of other reasons (theres lots of info out there if you search). There is no way you can completely separate the two things... you're always going to need to insert PHP variables into HTML and stuff, but this should be kept to a minimum.
Therefore I prefer to use that alternative syntax in template files in Wordpress, Codeigniter and other things because the way I see it you're inserting PHP into HTML in template files, so lets keep those PHP blocks insular.
i.e. to me:
<?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>";
}
?>
and vice versa:
<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>
Again, there is no "technical advantage" its just cleaner and better (IMO). This is mixing PHP and HTML too much:
<div><!-- straight html -->
<?php
if(something){
echo "<button>A Button</button>"; <!-- html output via php -->
}
?>
</div>
And this is just plain terrible:
<div>
<?php
if(something){
?>
<button>A Button</button>
<!-- make your mind up! -->
<?php
}
?>
</div>