Можно ли использовать global в php?
везде один и тот же ответ - использование GLOBAL в php - ЭТО НЕ ЕСТЬ ГУД
Геттер к пример можно использовать, чтоб в другом месте получить и всякие другие варианты..
Безопасная альтернатива для global vars php - stackoverflow.com/questions/7290993/safe-alternati...
class Test
{
    public function __construct( & $app )
    {
        $this->app = $app;
    }

}

$test = new Test( $app );
Вот такой код еще куда ни шло но и он я бы сказал не очень хорош. 
Использовать global можно только в конструкторе класса чтобы присвоить внутренним полям класса глобальные значения. При условии что эти глобальные переменные не объекты, и создаются кодом который находится в большой зависимости, например в index.php на котором 5 лет группа программистов писала код. Естественно поменять такие переменные не всегда возможно (ввиду необходимости глобального рефакторинга). Либо когда это "псевдоконстанты" как я их называю, когда переменной присваивается значение и оно не меняется на протяжении всего выполнения скрипта. В любом другом случае это крайне не рекомендуется.
Если следовать этому правилу (которое я придумал сам) то в принципе ничего страшного случится не может.
А вообще лучше всетаки посмотреть в сторону Dependency injection.