Na dobrą sprawę wystarczy sam CSS - użyj pseudo klasy :invalid, żeby ostylować input odrzucony przez walidację. Jeśli chodzi o dynamiczne nadanie klasy, to w PHP tego nie zrobisz, bo kod jest uruchomiony po stronie serwera - więc nie ma dostępu do DOMu strony. Do tego potrzebujesz użyć JavaScriptu; klasę dodasz metodą classList.add