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