Erro na tag php <? ?>

estou com problemas em uma aplicação onde algumas as tags <? ?> estão sendo confundidas com comentários html. segue o trecho de codigo.

<?= $cadastros->num_rows(); ?> registro(s)

<? foreach($cadastros -> result() as $cadastro): ?>

no codigo fonte ele interpreta as setas como comentário html

Dependendo da versao do php, você precisa habilitar short_open_tag no php.ini

http://php.net/manual/en/ini.core.php#ini.short-open-tag

Depois reinicie o servidor e veja se ele entende…

Aqui está errado

<? foreach($cadastros -> result() as $cadastro): ?>

Deve usar o tradicional mesmo…

<?php foreach($cadastros -> result() as $cadastro): ?>

O short_open_tag é apenas um atalho quando se usa comandos de saída, como echo, print, printf, etc, ao invés de usar…

<?php echo 'texto'; ?>

Você usa o atalho…

<?='texto'?>

Já para os outros comandos isso, como no foreach que você queria, não funciona…

quando eu uso o <?php ?> nestas duas linhas a pagina nem abre

obs: estou usando o codeigniter

o O short_open_tag ja está habilitado no php.ini

Não conheço codeigniter, mas dá uma olhada na config dele…

No fim do post, há uma sugestão sobre rewrite_short_tags…