al ver que php no parseaba correctamente

este es mi codigo
hice este ejemplo porque mi codigo es enorme
Código :
class hola { public $link = "http://localhost/mybug/index.php?dir=aqui"; public $link_name = "no se sie s cosa de php 6 nomas"; public function __construct() { /*aca va lo raro*/ ?> <h1 class="ejemplo">soy una cabecera</h1> <a class="link" href="<?php echo $this->link?>#id"><?php echo $this->link_name;?></a> <?php } } $hola = new hola(); ?>
y el resultado en html es este
Código :
<h1 class="ejemplo">soy una cabecera</h1> <a class="link" href="http://localhost/mybug/index.php?dir=aqui#id"><?php echo $this->link_name;?></a>
seria bueno si alguien me lo explica que pasa
lo arreglo haciendo con un str_replace('?>#',"echo '#'; ?>"); e slo q no quiero hacer por q me consume muchos recursos a alkguiens ele ocurre una idea?
quisera saber si es cosa de php6 no mas o por q bueno chau