PHP функция не видит внешнюю переменную?
Глобальные переменные --- зло. Не используйте их даже под страхом расстрела.
Либо используйте ключевое слово "global":<?php 
$nameErr = $emailErr = $genderErr = "";

function checkDone()
{
    global $nameErr;

    if ($nameErr == "") {
        return "true";
    } else {
        return "false";
    }
}

echo checkDone();
Либо передавайте переменную для проверки через аргументы функции. См. решение от Макс 
P.S.
Сейчас 21-й век. Закрывающих тег ("?>") не нужен
www.php.su/learnphp/vars/?glvars
Вы global потеряли