echo $begrüßung;
if($cols % 4){
Eine Modulo-Operation liefert den Rest der bei einer Division übrigbleibt. Bei 4 als zweitem Operanden liefert es 3x etwas, das als boolsches true gewertet wird und einmal als false.
Aber so funktioniert es bei mir auch. Ich habe eine 8 zeilige Tabelle erstellt. (Allerdings mit 2 Spalten)
Bei zwei Spalten ist das nicht weiter schlimm. Hier wechselt sich "ja" und "nein" ständig ab. Aber bei 3 und mehr sollte man das schon genauer beachten, wo man den Zeilenumbruch hinschreibt.
echo "$verabschiedung $name";