Nie ma jednoznacznej odpowiedzi na twoje pytania ale postaram Ci się nakreślić temat

Ogólnie przyjęło się robić w ten sposób, że metody klasy jak i sama klasa powinna być zamknięta na zewnątrz. Co oznacza, że nie powinno się używać raczej zmiennych typu $_GET itp w jej wnętrzu. Aby zachować przejrzystość i uniwersalność takiej metody/klasy należy jej żądane parametry przekazać (jeśli boisz się o pamięć - można referencyjnie). Grunt aby dana metoda przyjmowała w argumentach swoich to - co jest jej potrzebne do działania. Przykładowo jeśli masz swoją klase i pracujesz na tablicy $_GET to zmiana na $_POST to kwestia kilku linijek - jeśli dawałbyś to $_GET jako argument metody i dalej pracował na zmiennej lokalnej to zmiana na $_POST była by tylko w jednym miejscu - co więcej można by tam było wrzucać dowolne rzeczy - tak więc mamy uniwersalność

Co do samego sprawdzania zmiennych to są w zasadzie trzy drogi z czego moim zdaniem jedna jest najlepsza:
1. Walidacja danych przed wrzuceniem do metody - zaletą jest to że metoda staje się lżejsza, brak w niej kodu odpowiadającego za walidację stąd też lepiej widać jej samą funkcjonalność. Wadą natomiast jest to, że przed każdym wywołaniem metody musisz walidować dane - można się zapomnieć.
Wyjątkiem od tej wady jest opcja gdy dana metoda jest zawsze wywoływana przez inną, która to zawsze przekazuje już zwalidowane dane. Wtedy oczywiście ta metoda jest najlepsza (po co walidować coś dwa razy?)
2. Walidacja wewnątrz metody i klasy - Na początku metody mamy walidację danych potem kod funkcjonalny samej metody. Zaleta - dane zawsze są walidowane - wada - zaciemnia i powiększa to kod metody.
3. Walidacja wenątrz klasy ale nie metody - W klasie tworzysz dodatkową metodę (prywatną odpowiadającą za walidację danych). W swojej metodzie na początku przekazujesz dane do metody walidującej i dalej wykonujesz kod samej metody. Zaleta jest taka że masz zawsze walidację oraz fakt że dana metoda walidująca może być użyta w wielu miejscach bądź nawet uniwersalna. Dodatkowa zaleta jest taka że masz zawsze walidację w jednym miejscu. Wadą (minimalną) jest to, że w danej metodzie znajduje się "jedna linijka" walidująca dane - lecz nie jest to takie straszne.
Podsumowując - moje propozycje:
ad. 1 - Waliduj wewnątrz klasy - jeśli się uda to zrób dodatkową metodę walidującą aby nie zaciemniać kodu twojej metody
ad. 2 - Przekazuj zmienne w argumentach - uzyszkasz większą skalowalność oraz uniwersalność - plus łatwość zmian parametrów wejściowych (klasa będzie działać zawsze tak samo - Ty wtedy decydujesz na jakich danych w szybki i prosty sposó