Проблема в том, что $ a на самом деле определяется не в глобальной области видимости, а в шаблоне представления. Таким образом,
global $a;
не работает так, как вы ожидаете.
Я не уверен, сработает ли это, но вы можете хотя бы попробовать:
$GLOBALS['a'] = 5;
function showme(){
echo $GLOBALS['a'];
}