PHP语句块中可以嵌入类似于( ?>HTML代码<?php )的东西?

迷惑行为!
举例子,下面的PHP代码输出Hello。

<?php
            if(true)
            {
                ?>
                <p>Hello</p>    
                <?php
            }
            else
            {
                ?>
                <p>World</p>
                <?php
            }
?>

而把上面代码中if判断中的true改为false后,输出World。

还有下面的例子,会输出三行HelloWorld

<?php
            function foo()
            {
                ?>
                <p>HelloWorld</p>
                <?php
            }
            foo();
            foo();
            foo();
?>

这种语法在一些PHP书上见过,但都没有对此进行解释。自己分析一下代码好像也能理解得通,但是没有深入的认识,不知道这种用法什么时候行得通。
可以系统地讲一下到底怎么回事吗,或者在哪里可以详细了解?
(对这个感兴趣是因为我在想这种语法有没有可能造成注入漏洞啥的

为什么不看一下官方手册呢?https://www.tianlunvip.com/wiki/php/archives/160.html