Zapomnij o słowie global. W OOP takie sytuacje rozwiązuje się za pomocą np. DI (Dependency Injection, wstrzykiwania zależności). W tym przypadku obiekt $mysql odpowiedzialny za obsługę połączenia z bazą danych powinieneś przekazać jako argument konstruktora. Skoro klasa ma reprezentować nowinki, to niech się tak właśnie nazywa, nazwa printNews nadaje się bardziej dla odpowiedniej metody, która te news-y wyświetla. Swoją drogą tym już klasa News nie powinna się zajmować. Przykład:
class News {
private $_db = null;
public function __construct($db) {
$this->_db = $db;
}
public function fetchAll() {
$results = $this->_db->query("SELECT * FROM `News`");
while($row = $results->fetch_assoc()) {
$news[] = $row;
}
return $news;
}
}
$news = new News($mysql);
foreach($news->fetchAll() as $data) {
// ...
}
Chyba trochę przedobrzyłeś.