А создать переменную за тебя кто-то должен? Ну или еще как вариант через isset проверить ее существование. А вообще я сам всегда стараюсь не пользоваться магией приведения типов и для каждого типа делать соответствующие проверки.
Например в данном случае я бы сделал так:
if (isset($error)) {
}или в самом начале создал переменную $error = '' и затем уже в условии проверил, не является ли она пустой:
if (!empty($error)) {
}А еще лучше сделать массив $error = [];
и затем использовать не elseif, разбить на отдельные условия.
При этом думаю не нужно объяснять, как заполнять массив.
И уже в конце:
if (!empty($error)) {
echo implode("\r\n", $error);
}